Python:重新赋值给变量(使用函数)

可能重复:
Python:我如何通过引用传递变量?

我如何重新分配一个值作为函数参数传递的变量?

例如,我期待的是:

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()

有任何想法吗?


foo = convert(foo)

是实现这一目标的最干净和最明确的方式。 这是大多数人推荐的方式,如果你确定你甚至需要重新分配一个字符串到一个bool变量。

foo.convert()

是你可以在你需要定义的类的实例上做的事情。 你可以做到,但这不值得冒险。 只需重新分配变量,就是这样。

convert(foo) # actually, just convert()

也可以工作,但是你必须在convert函数中使用global关键字。 这不被推荐,特别是当它很容易避免时。

In [1]: foo = True

In [2]: def convert():
   ...:    global foo
   ...:    foo = 'on' if foo else 'off'
   ...:     

In [3]: convert()

In [4]: foo
Out[4]: 'on'
链接地址: http://www.djcxy.com/p/20825.html

上一篇: Python: Reassign value to variable (using a function)

下一篇: Python : When is a variable passed by reference and when by value?