Python中另一个文件中的静态变量

2024-03-28 14:30:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前在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。我做错什么了?谢谢!在


Tags: 文件selfobjectinitvardef静态global
1条回答
网友
1楼 · 发布于 2024-03-28 14:30:58

主类有两个独立的实例!这是由于Python导入的工作方式造成的。在

您可以通过从FileA打印id(MainClass)以及在FileB中的__init__中导入它之后,来验证这一点

这不是Python中的bug,您只是在尝试做一些Python语言没有指定的应该起作用的事情。在

尝试这样的代码对学习是有好处的,但我希望您不要试图做这样的事情,这是一个真正的程序。当然还有比意大利面条更好的方法这样的代码。在

†对任何被此评论冒犯的意大利面表示歉意。在

相关问题 更多 >