在子实例中调用父实例的方法

时间:2013-02-22 10:45:38

标签: python

让子类(B)实例调用其父类(A)实例的方法之一的最佳方法是什么?将self传递给子类(B)的实例似乎有效,但不知何故,这似乎不是有效或良好的实践。有没有更好的方法来解决这个问题?

class A():
    def __init__(self,name):
        self.instanceOfB = self.B(self)
        self.name = name

    def hello(self):
        print 'Hello '+self.name

    class B():
        def __init__(self,parent):
            self.parent = parent

        def hi(self):
            self.parent.hello() ##Call parent instance's method 'hello()' here

instanceOfA = A('Bob')
instanceOfA.instanceOfB.hi()

应该导致:

Hello Bob
仅当@classmethod不依赖于使用A类实例化的任何信息时,

@staticmethodA.hello()才有效

0 个答案:

没有答案