如果我们传递Python函数名,那么作为参数传递的确切内容是什么?

如果我们传递Python函数名,那么作为参数传递的确切内容是什么?,python,python-3.x,oop,Python,Python 3.x,Oop,最近我向我的大学老师描述我的代码,它是这样的: 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中没有真正的指针。我想弄明白,但找不到任何明确的答案。那么,这是什么?引用、对象还是

最近我向我的大学老师描述我的代码,它是这样的:

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\u list
接受所有可以用
()
调用的内容。这意味着您可以传递任何实现了
\uuuu call\uuu()
方法的内容。当然,函数也是如此。

它是对函数的引用,因为Python中的每个名称都是对对象的引用。