如何让python函数对作为参数给出的原始对象起作用
def f(x):
x = None
y = 1
f(y)
y # Returns 1, I want y to return None
我知道y == 1是正确的行为。我的问题是:是否有一个技巧可以让python函数表现得好像参数是通过引用传递的?
答案 0 :(得分:1)
def f(x):
return None
y = 1
y = f(y)
y # Returns 1, I want y to return None
您需要从函数返回并将返回值分配给变量
答案 1 :(得分:0)
您的函数f(x)
实际上并没有返回任何内容。设置x = None
后,您所做的就是重新分配x
内的本地f
;你实际上并没有改变你传入的变量。这不是你可以在Python中轻松完成的事情,而且你通常不想这样做。你想要的东西是:
def f(x):
x = None
return x
然后在主代码中将y
分配给f(x)
。