所以这是一些示例代码
class hi(object)
def __init__(self):
self.answer = 'hi'
def change(self):
self.answer ='bye'
print self.answer
def printer(self):
print self.answer
class goodbye(object):
def bye(self):
hi().change()
goodbye().bye()
hi().printer()
当我运行此代码时输出
'bye'
'hi'
我希望它输出
'bye'
'bye'
有没有办法在将self.answer初始化为hi时执行此操作,或者这会导致它始终重新初始化为“嗨”。不管我事后做什么?
答案 0 :(得分:1)
您正在使用实例属性而非jonrsharpe指出的类属性。
尝试这样的事情:
class hi(object):
answer = 'hi'
def __init__(self):
pass
@classmethod
def change(cls):
cls.answer ='bye'
print cls.answer
def printer(self):
print self.answer
class goodbye(object):
def bye(self):
hi.change()
goodbye().bye()
hi().printer()
此处answer
现在是类属性,change()
是 classmethod