在這裏我得到了2套碼python函數調用與括號之間的區別是什麼?
def outer(msg):
def inner(msg):
return inner()
outer("hi")
另一種是
def outer(msg):
def inner(msg):
return inner
outer("hi")
請告訴我這兩個組之間的差異?
在這裏我得到了2套碼python函數調用與括號之間的區別是什麼?
def outer(msg):
def inner(msg):
return inner()
outer("hi")
另一種是
def outer(msg):
def inner(msg):
return inner
outer("hi")
請告訴我這兩個組之間的差異?
使用圓括號調用函數並返回一個值。返回一個沒有調用它的函數(沒有括號)會返回指向函數本身的指針,而不是函數的值。你正在傳遞函數,所以可以在別的地方調用它。
括號是調用函數的語法。沒有嚴格的操作,但你可以考慮這樣的說法:
inner() # Call the function
功能有返回值(默認爲None
),所以
return inner()
調用inner
功能並返回任何inner
回報。
名稱inner
只是對象的引用。
x = 42
名稱x
是一個int
的參考。
def inner():
pass
名稱inner
是對函數的引用。 x = inner
其次是x()
是完全有效的。
因此,返回一個名稱,任何名稱,只是返回一個對它引用的對象的引用,不管它是什麼。一個函數,一個整數,一個大象,不管。
第一個返回'inner'的結果,第二個返回一個指向'inner'的指針。 –
爲什麼會陷入低谷? – Ananthu
因爲你的問題顯然是愚蠢的 –