【问题标题】:Python: Variables aren't re-assignedPython:不会重新分配变量
【发布时间】:2012-05-23 04:46:53
【问题描述】:

为什么调用 tst 时下面的变量 (A,B,C,D) 没有改变。

A,B,C = 0,0,0
D = 0

def tst():
    A,B,C = 1,2,3
    D = 4
    print(A,B,C,D)

tst() # tst is called
print(A,B,C,D)

Output:

(1, 2, 3, 4)
(0, 0, 0, 0)

【问题讨论】:

    标签: python function variables


    【解决方案1】:

    因为 Python 范围规则。

    在 def tst() 中,您正在创建局部变量 A、B 和 C,并为它们分配新值。

    如果您希望分配给全局 A、B 和 C 值,请使用 global 关键字。

    【讨论】:

      【解决方案2】:

      tst 方法中的变量是本地的,也就是说,它们引用了只存在于该方法范围内的不同值。在tst 中使用关键字global(如global A,B,C,D)来修复该行为。查看示例here 和问题here

      【讨论】:

        猜你喜欢
        • 2015-11-04
        • 1970-01-01
        • 1970-01-01
        • 2019-03-31
        • 1970-01-01
        • 2021-05-25
        • 1970-01-01
        • 2013-08-18
        • 1970-01-01
        相关资源
        最近更新 更多