让子类(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类实例化的任何信息时, @staticmethod
和A.hello()
才有效