[英]What is exactly passed as an argument if we pass Python function name?
最近我在向我的 Uni 老師描述我的代碼,大概是這樣的:
def f(x):
return x*x
def map_list(function, list):
return [function(element) for element in list]
map_list(f, [1,2,3])
我告訴過在map_list(f, [1,2,3])
中, f
參數是指向 function 的指針,這顯然是錯誤的,因為 PYthon 中確實沒有指針。 我試圖弄清楚,但我找不到任何明確的答案。 那么,它是什么? 參考,object,還是別的什么?
提前致謝。
函數是 python 中的一等對象,因此您可以將它們傳遞給函數並將它們放置在列表、字典等中。它們作為 object 引用傳遞。
您傳遞的是一個綁定到 object 的名稱。 您可以將多個名稱綁定到同一個 object,如下例所示:
x = []
y = x # x and y are two names bind to the same object
如果您使用參數調用 function,您將創建另一個名稱(參數的名稱)綁定到傳遞的 object。
在您的情況下, function map_list
接受可使用()
調用的所有內容。 這意味着你可以傳遞任何實現了__call__()
方法的東西。 當然,function 也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.