python class里面的全局变量问题
发布网友
发布时间:2022-04-24 03:04
我来回答
共4个回答
热心网友
时间:2022-04-06 04:15
class Test:
def __init__(self,name='testA'):
self.x = 'age'
self.name = name
self.oo="this is test"
self.start()
def ex(self):
oo = 'this is test'
def start(self):
print oo
Test()
追问关键是我oo变量是在 ex方法内获得的值。
热心网友
时间:2022-04-06 05:33
你在ex里面定义的oo,所以你得先执行过ex之后才能执行start。
class Test:
def __init__(self,name='testA'):
self.x = 'age'
self.name = name
self.ex() #加上这个
self.start()
def ex(self):
global oo
oo = 'this is test'
def start(self):
print oo
t=Test()
如果不适用全局变量的话,你可以self.oo:
class Test:
def __init__(self,name='testA'):
self.x = 'age'
self.name = name
self.ex()
self.start()
def ex(self):
self.oo = 'this is test'
def start(self):
print self.oo
t=Test()
热心网友
时间:2022-04-06 07:07
你在ex里面定义的oo,所以你得先执行过ex之后才能执行start。
12345678910111213class Test: def __init__(self,name='testA'): self.x = 'age' self.name = name self.ex() #加上这个 self.start() def ex(self): global oo oo = 'this is test' def start(self): print oo t=Test()
如果不适用全局变量的话,你可以self.oo:
123456789101112class Test: def __init__(self,name='testA'): self.x = 'age' self.name = name self.ex() self.start() def ex(self): self.oo = 'this is test' def start(self): print self.oo t=Test()
热心网友
时间:2022-04-06 08:59
因为你定义oo是在self.ex(self)这个函数里,所以在这个函数被执行前,global里并没有 oo这个变量。
如果你明白这个道理就知道了怎么去打印你的oo了。
简单的说这样
t=Test()
t.ex()
t.start()