【发布时间】:2012-12-07 21:16:06
【问题描述】:
如何将值重新分配给作为函数参数传递的变量?
例如,我想做的是:
foo = True
def convert(foo):
if foo == True:
foo = 'on'
elif foo == False:
foo = 'off'
return foo
foo 现在是一个字符串。上述方法的问题在于,为了将 foo 从布尔类型更改为字符串类型,必须传递以下内容:
foo = convert(foo)
而我正在做类似的事情:
convert(foo)
或者,
foo.convert()
有什么想法吗?
【问题讨论】:
-
听起来你想要这个:stackoverflow.com/q/986006/21475。此外,值得一读 Python 的
global关键字(但在这里并不适用)。 -
查看 Lev 对最干净(也是最正确)解决方案的回答。如果您坚持能够更改对象而不返回它,请将其包装在类或字典中(例如,一个简单的技巧是使用 foo={True} 并传递它)。
标签: python function variables python-2.7