什么是在python中使用out括号调用函数的区别?

时间:2016-10-21 19:09:25

标签: python

这里我有两套代码

    def outer(msg):
      def inner(msg):
        return inner
    outer("hi")

另一个是

{{1}}

这两组的区别是什么?

2 个答案:

答案 0 :(得分:4)

使用括号调用函数并返回一个值。返回函数而不调用它(没有括号)将返回指向函数本身的指针,而不是函数的值。你传递了这个函数,所以可以在其他地方调用它。

答案 1 :(得分:0)

括号是调用函数的语法。不是严格意义上的运营商,但你可以这样考虑:

inner()    # Call the function

函数有返回值(默认为None),所以

return inner()

调用inner函数并返回inner返回的任何内容。

名称inner只是对象的引用。

x = 42

名称x是对int的引用。

def inner():
    pass

名称inner是对函数的引用。 x = inner后跟x()完全有效。

因此返回一个名称,任何名称,只是返回它引用的对象的引用,无论它是什么。一个函数,一个整数,一个大象,等等。