def x():
print("This is a function x")
我定义了一个名为x
的函数,并将其分配给y
y = x
y() # Calling this would call the original function
但是内部发生了什么,它是为函数分配指针或引用还是我无法理解的类似实例的东西?
或者它是否给出了x
定义的内存地址的链接?
答案 0 :(得分:2)
函数就像Python中的其他所有对象一样。为函数分配函数就像分配字符串或列表一样 - 就像那些一样,为对象创建一个新的引用。
答案 1 :(得分:1)
由于在python中,所有内容都是对象(即使函数都是一等对象),因此,当您定义函数'x'并将其分配给变量(name)'y'时,除了将名称绑定到对象“ x”。 对于此声明,
y=x()
名称y绑定到功能x的范围。所以,
y()
绑定到x的函数调用。
答案 2 :(得分:0)
通过为变量赋值:
y = x
x()对象的引用存储在变量 y 中
当您通过以下方式将指定的变量作为函数调用时:
y()
使用存储的引用
调用函数 x答案 3 :(得分:0)
与(几乎)所有其他编程语言一样,函数是对象。
y = x
y() # Calling this would call the original
x现在是函数类型的对象
def test(func):
func()
test(x)
因此在y变量中存储了指向x-object / function的指针。如果你调用y(),y会查找它的'origin'并调用x ...
因为所有函数都是对象,所以您也可以将函数作为参数传递:
{{1}}
会输出:
这是一个函数x
希望我能帮忙!