这里我有两套代码
def outer(msg):
def inner(msg):
return inner
outer("hi")
另一个是
{{1}}
这两组的区别是什么?
答案 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()
完全有效。
因此返回一个名称,任何名称,只是返回它引用的对象的引用,无论它是什么。一个函数,一个整数,一个大象,等等。