Python shell
def outer():def inner(a):返回一个返回内部
在第一个实例中,当我调用outer(5)时,它给了我一个错误,说Traceback(最近一次调用last):File“”,第1行,在TypeError中:outer()接受0位置参数,但是当我指定了函数变量并将参数传递给变量,它只返回一个没有错误的值,即f = outer()f(5)它返回5
函数 outer() 不带参数 . 它定义了一个本地函数 inner(a) 并返回对该函数的引用 . 这就是您上次尝试不会产生错误的原因 . 通过写作
outer()
inner(a)
f = outer() f(5)
您实际上是将定义的函数 inner(a) 分配给f,然后使用参数5调用它 .
我希望这更清楚 . 尽管如此,我还是不明白你为什么要首先以这种方式定义函数 .
outer() 返回函数 inner() ,因此通过将 outer() 设置为变量,您将该变量设置为 inner() ,但是通过将 outer 设置为变量,您只需将变量设置为函数 outer()
inner()
outer
2 回答
函数
outer()
不带参数 . 它定义了一个本地函数inner(a)
并返回对该函数的引用 . 这就是您上次尝试不会产生错误的原因 . 通过写作您实际上是将定义的函数
inner(a)
分配给f,然后使用参数5调用它 .我希望这更清楚 . 尽管如此,我还是不明白你为什么要首先以这种方式定义函数 .
outer()
返回函数inner()
,因此通过将outer()
设置为变量,您将该变量设置为inner()
,但是通过将outer
设置为变量,您只需将变量设置为函数outer()