最近我向我的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
参数是指向函数的指针,这显然是错误的,因为PYthon中实际上没有指针。我试图弄清楚,但我找不到任何明确的答案。那么,它是什么?引用、对象还是其他东西?
提前谢谢。
函数是 python 中的一等对象,因此您可以将它们传递到函数中并将它们放在列表、字典等中。它们作为对象引用传递。
你传递的是一个绑定到对象的名称。 可以将多个名称绑定到同一对象,如以下示例所示:
x = []
y = x # x and y are two names bind to the same object
如果使用参数调用函数,则会创建另一个绑定到传递对象的名称(参数的名称(。
在您的情况下,函数map_list
接受所有可调用的内容()
.这意味着您可以传递任何已实现__call__()
方法的内容。当然,函数也是如此。