python class里面的全局变量问题

classTest:def__init__(self,name='testA'):self.x='age'self.name=nameself.start()defex(... class Test:

def __init__(self,name='testA'):

self.x = 'age'

self.name = name

self.start()

def ex(self):

global oo

oo = 'this is test'

def start(self):

global oo

print oo

Test()
请问 如何print oo变量??另外除了使用全局变量还有没有其他方法print oo
展开
 我来答
百度网友87b2a52
2013-06-09 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部
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方法内获得的值。
kaisa1028
推荐于2017-09-30 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5429
采纳率:28%
帮助的人:2586万
展开全部

你在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()
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戚范弓秋灵
2019-10-29 · TA获得超过3791个赞
知道小有建树答主
回答量:3104
采纳率:34%
帮助的人:430万
展开全部
你在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()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdwisyou7d
2013-06-09 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1086万
展开全部
因为你定义oo是在self.ex(self)这个函数里,所以在这个函数被执行前,global里并没有 oo这个变量。

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

简单的说这样
t=Test()
t.ex()
t.start()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式