首页 文章

当我们将函数赋值给变量并在python中直接调用函数时,为什么执行上的差异

提问于
浏览
-5

Python shell

def outer():def inner(a):返回一个返回内部

在第一个实例中,当我调用outer(5)时,它给了我一个错误,说Traceback(最近一次调用last):File“”,第1行,在TypeError中:outer()接受0位置参数,但是当我指定了函数变量并将参数传递给变量,它只返回一个没有错误的值,即f = outer()f(5)它返回5

2 回答

  • 0

    函数 outer() 不带参数 . 它定义了一个本地函数 inner(a) 并返回对该函数的引用 . 这就是您上次尝试不会产生错误的原因 . 通过写作

    f = outer()
    f(5)
    

    您实际上是将定义的函数 inner(a) 分配给f,然后使用参数5调用它 .

    我希望这更清楚 . 尽管如此,我还是不明白你为什么要首先以这种方式定义函数 .

  • 0

    outer() 返回函数 inner() ,因此通过将 outer() 设置为变量,您将该变量设置为 inner() ,但是通过将 outer 设置为变量,您只需将变量设置为函数 outer()

相关问题