在函数内部将调用参数设置为None

时间:2014-07-23 14:23:57

标签: python

如何让python函数对作为参数给出的原始对象起作用

def f(x):
    x = None

y = 1
f(y)
y  # Returns 1, I want y to return None

我知道y == 1是正确的行为。我的问题是:是否有一个技巧可以让python函数表现得好像参数是通过引用传递的?

2 个答案:

答案 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)