使用全局变量时未定义全局名称

时间:2014-08-29 04:04:18

标签: python

我正在学习Python,因为我的变量并且在函数中访问它们我没有得到错误。

我在PythonFiddle中重新创建了我的脚本的总体布局,我得到了同样的错误

global trigger

class test(object):
    def init(self):
        trigger = 'hi'
        self.step2()

    def step2(self):
        print '%s' % trigger

if __name__ == "__main__":
    tester = test()
    tester.init()`

有人有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您需要在分配给它的每个函数中将变量标记为全局变量。将global trigger放入init方法。

请注意,以这种方式做事可能不是一个好主意。如果它只是将数据存储在全局变量中,那么定义一个类并不重要。一种选择是:

class test(object):
    def init(self):
        self.trigger = 'hi'
        self.step2()

    def step2(self):
        print '%s' % self.trigger

if __name__ == "__main__":
    tester = test()
    tester.init()