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。
123456710111213class 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:
1234567101112class 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()

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com