导入的Python类中的全局变量

时间:2019-01-13 10:44:41

标签: python-3.x class global-variables

这是我第一次尝试在python中实现“稍大”的项目。因此,我想使用不同的python文件来构建整个项目。我还需要一些全局变量。如果将所有内容都放在一个文件中,则以下示例有效。一分为二,它就不再起作用了。解决问题的一种优雅方法是什么:

class MyClass:
    def call(self):
        print("In Methode call")
        self.check()

    def check(self):
        global a
        if a:
            print("a ist True")
            a = False
        else:
            print("a ist False")
            a = True

    def methode3(self):
        print("In methode 3")


if __name__=="__main__":
    a=True    
    instanz = MyClass()
    instanz.methode3()
    instanz.call()
    instanz.check()

此脚本本身可以正常工作。

如果现在从下面的第二个脚本中调用它,则会收到未定义“ a”的错误。调用instanz.methode3()当然有效。

import test

a = True;
instanz = test.MyClass();
instanz.methode3()
instanz.call()

1 个答案:

答案 0 :(得分:0)

以下检查,

if __name__=="__main__":

仅在文件自行运行而不是导入时才从中调用。在此a之外声明if应该可以正常工作。

此外,要访问新变量a,请使用test.a