我目前在Python中修改另一个文件中的静态变量时遇到了困难。在
文件a
class MainClass(object):
global_var = 0
def __init__(self):
MainClass.global_var = 1
class SecondClass(object):
def __init__(self):
MainClass.global_var = 2
if __name__ == '__main__':
main = MainClass()
print "After MainClass:" + str(MainClass.global_var)
second = SecondClass()
print "After SecondClass:" + str(MainClass.global_var)
from FileB import ThirdClass
third = ThirdClass()
print "After ThirdClass:" + str(MainClass.global_var)
文件b
^{pr2}$输出
After MainClass:1
After SecondClass:2
After ThirdClass:2
我想在FileB中将MainClass中的静态变量修改为3。我做错什么了?谢谢!在
主类有两个独立的实例!这是由于Python导入的工作方式造成的。在
您可以通过从
FileA
打印id(MainClass)
以及在FileB
中的__init__
中导入它之后,来验证这一点这不是Python中的bug,您只是在尝试做一些Python语言没有指定的应该起作用的事情。在
尝试这样的代码对学习是有好处的,但我希望您不要试图做这样的事情,这是一个真正的程序。当然还有比意大利面条更好的方法†这样的代码。在
†对任何被此评论冒犯的意大利面表示歉意。在
相关问题 更多 >
编程相关推荐