Boibot 发表于 2021-9-5 23:32:10

suchocolate 发表于 2021-9-5 23:15
那请把你报错的代码贴出来,别贴草稿好吗?

这里
def make_repeat(n):
    return s * n
n = 2
print(make_repeat(n)(8))
print(make_repeat(n)('FishC')) error

def make_repeat(n)(s):   
    return s * n
n = 2
print(make_repeat(n)(8))
print(make_repeat(n)('FishC')) error


def make_repeat(n,s):   
    return s * n
n = 2
print(make_repeat(n,8))
print(make_repeat(n,'FishC'))right


def make_repeat(n=2,s):   
    return s * n
print(make_repeat(n,8))
print(make_repeat(n,'FishC'))error


def make_repeat(s):   
    return s * 2
print(make_repeat(8))
print(make_repeat('FishC'))    right

Boibot 发表于 2021-9-5 23:43:33

我等

suchocolate 发表于 2021-9-6 10:11:14

Boibot 发表于 2021-9-5 23:43
我等

def make_repeat(n):
    return s * n# s是函数内局部变量,也没有传入的接口,所以调用的时候报错s没有定义。


n = 2
print(make_repeat(n)(8))# 普通函数不是这么多调用的,make_repeat返回的是普通值,不是函数的入口。
print(make_repeat(n)('FishC'))# error


# 修改如下:
def make_repeat(s, n=2):
    return s * n


print(make_repeat(2))
print(make_repeat('FishC'))


# ===================================================================================


def make_repeat(n)(s):# 没有这种函数定义方式,定义参考上面的


return s * n
n = 2
print(make_repeat(n)(8))
print(make_repeat(n)('FishC'))# error


# ===================================================================================
#
def make_repeat(n, s):# 没有问题
    return s * n


n = 2
print(make_repeat(n, 8))
print(make_repeat(n, 'FishC'))# right


# ===================================================================================
#
def make_repeat(n=2, s):# 函数定义一般关键字放后面,非关键字放前面,使用的时候要制定关键字,参考第一个
    return s * n

print(make_repeat(n, 8))
print(make_repeat(n, 'FishC'))# error

# ===================================================================================

def make_repeat(s):# 没有问题
    return s * 2
print(make_repeat(8))
print(make_repeat('FishC'))    #right

suchocolate 发表于 2021-9-6 10:12:34

还是仔细看看函数章节吧,在这不断尝试,不如咨询看看教程。

Boibot 发表于 2021-9-6 23:26:52

suchocolate 发表于 2021-9-6 10:12
还是仔细看看函数章节吧,在这不断尝试,不如咨询看看教程。

今天看了你发的菜鸟函数章节找到好多没弄懂的地方,之前都没注意到,我的知识体系都是漏洞

Boibot 发表于 2021-9-7 08:13:46

s是函数内局部变量,也没有传入的接口,所以调用的时候报错s没有定义。
普通函数不是这么多调用的,make_repeat返回的是普通值,不是函数的入口。
函数定义一般关键字放后面,非关键字放前面,使用的时候要制定关键字,参考第一个。
页: 1 [2]
查看完整版本: 分别把lambda函数变为普通函数,把make_repeat(n)函数变为lambda函数