python class里面的全局变量问题

2025-03-23 04:17:05
推荐回答(4个)
回答1:

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

回答2:

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

回答3:

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

回答4:

因为你定义oo是在self.ex(self)这个函数里,所以在这个函数被执行前,global里并没有 oo这个变量。

如果你明白这个道理就知道了怎么去打印你的oo了。

简单的说这样
t=Test()
t.ex()
t.start()