def fun1(x):
def fun2(y):
return x * y
return fun2
print(fun1(3)(4))
为什么在fun1中,'return fun2' 并没有传入参数,为什么还是能输出正确答案12呢?
python一切皆对象,所以函数也可以作为对象赋给变量的,同理,函数也可以返回一个函数对象,你上面的例子就是返回fun2函数对象,如果你return fun2(参数) 这就是先调用函数fun2,再return执行fun2的值了。
print中fun1(3) 返回的就是fun2函数对象,所以必须再调用一次(4)了