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
|