Python 2.7
我想在实例化其子对象
后自动调用父对象的函数class Mother:
def __init__(self):
pass
def call_me_maybe(self):
print 'hello son'
class Child(Mother):
def __init__(self):
print 'hi mom'
# desired behavior
>>> billy = Child()
hi mom
hello son
我有办法做到这一点吗?
根据以下评论进行修改:
“我应该在我的问题中使它更清晰,我真正想要的是某种'自动'调用父方法,仅仅通过子实例化触发,没有显式调用父方法孩子。我希望有一种神奇的方法,但我不认为有。“
答案 0 :(得分:4)
您可以使用super
但是您应该将超类设置为从object
继承:
class Mother(object):
# ^
def __init__(self):
pass
def call_me_maybe(self):
print 'hello son'
class Child(Mother):
def __init__(self):
print 'hi mom'
super(Child, self).call_me_maybe()
>>> billy = Child()
hi mom
hello son
答案 1 :(得分:1)
使用super()
?
class Child(Mother):
def __init__(self):
print 'hi mom'
super(Child, self).call_me_maybe()
答案 2 :(得分:1)
由于子类继承了parent方法,因此您只需在__init__()
语句中调用该方法即可。
class Mother(object):
def __init__(self):
pass
def call_me_maybe(self):
print('hello son')
class Child(Mother):
def __init__(self):
print('hi mom')
self.call_me_maybe()