【发布时间】:2016-10-16 21:51:40
【问题描述】:
我是 python 新手,在理解这里的范围时遇到了一些问题。
我有一个带有三个全局变量的 python 模块 A:
XYZ = "val1"
ABC = {"k1" : "v1", "k2" : "v2"}
PQR = 1
class Cls_A() :
def sm_fn_A(self) :
global XYZ
global ABC
global PQR
XYZ = "val2"
ABC["k1"] = "z1"
ABC["k3"] = "v3"
PQR += 1
还有另一个模块 B:
from A import Cls_A, XYZ, ABC, PQR
class Cls_B():
def sm_fn_B(self) :
Cls_A().sm_fn_A()
print XYZ
print ABC
print PQR
Cls_B().sm_fn_B()
这给了我以下输出:
val1
{'k3': 'v3', 'k2': 'v2', 'k1': 'z1'}
1
既然这些都是全局变量,为什么我没有打印出所有全局变量的更新值?
【问题讨论】:
标签: python python-2.7 import scope global-variables