再次调用时,停止重新初始化类变量?

时间:2015-06-04 15:54:48

标签: python

所以这是一些示例代码

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时执行此操作,或者这会导致它始终重新初始化为“嗨”。不管我事后做什么?

1 个答案:

答案 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