使用全局变量时未定义全局名称
我正在学习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()