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

0 投票
1 回答
662 浏览
提问于 2025-04-18 18:56

我正在学习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 个回答

2

你需要在每个给这个变量赋值的函数里,把它标记为全局变量。在你的 init 方法里面加上 global trigger

不过,这样做可能不是个好主意。如果一个类只是用来存储全局变量的数据,那定义这个类就没什么意义了。你可以考虑其他的方法,比如:

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()

撰写回答