提问人:Tjeerd Bakker 提问时间:12/24/2020 更新时间:12/24/2020 访问量:47
为什么这个 Python 函数不通过引用传递?
Why is this Python function not passed by reference?
问:
def funcA():
print("No")
def funcB():
print("Yes")
class A:
def __init__(self, func):
self.func = func
def getB(self):
b = B(self.func)
return b
def setfunc(self, func):
self.func = func
class B:
def __init__(self, func):
self.func = func
def execfunc(self):
self.func()
a = A(funcA)
b = a.getB()
a.setfunc(funcB)
b.execfunc()
- 我创建 A 并将 A.func 设置为 funcA(打印“否”)
- 我创建 B 并设置 B.func = A.func = funcA(打印“否”)
- 我将 A.func 更改为 funcB(打印“是”)
- 我执行 B.func 并执行 funcA(打印“否”)
如果在步骤 2 中通过引用传递函数,而在步骤 3 中更改了函数目标,为什么 B.func 没有更改为新目标?
答: 暂无答案
评论
pass by reference
=