我有一堆class
个对象都是从基类继承的。其中一些覆盖了一个方法(save
)并做了一些事情。对于这个特定的用例,我想暂时不允许使用子save
方法(如果存在),而是强制使用父save
方法。
class BaseClass(object):
def save(self, *args, **kwargs):
print("Base Called")
class Foo(BaseClass):
def save(self, *args, **kwargs):
# do_stuff
print("Foo called")
return super(Foo, self).save(*args, **kwargs)
obj = Foo()
如何从孩子外面打电话给obj
父母保存,以便打印“Base Called”?
答案 0 :(得分:4)
您可以使用super()
super(type(obj), obj).save()
当我运行时:
class BaseClass(object):
def save(self, *args, **kwargs):
print("Base Called")
class Foo(BaseClass):
def save(self, *args, **kwargs):
# do_stuff
print("Foo called")
return super(Foo, self).save(*args, **kwargs)
obj = Foo()
super(type(obj), obj).save()
输出:
Base Called