【发布时间】:2016-04-01 20:11:33
【问题描述】:
我试图了解 Python 代码何时引用模块级变量与类级变量。我在一个模块中有以下代码,main.py'
## main.py
# global variable x
x = "I am global and I love it!"
class SomeClass:
x = "I am a class attribute, and life is good!"
print(x) # prints "I am a class attribute, and life is good!"
def __init__(self):
print(x) # prints "I am global and I love it!" Why?
print(x) # prints "I am global and I love it!"
SomeClass()
当我导入这个模块时,输出是:
I am a class attribute, and life is good!
I am global and I love it!
I am global and I love it!
为什么SomeClass.__init__方法里面的print打印的是全局变量,而class body里面的print打印的是类属性x?
这是从 Python 邮件列表中的一个问题转述的:https://mail.python.org/pipermail/python-list/2015-December/701167.html
【问题讨论】:
标签: python