У меня есть куча 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»?
Что вы имеете в виду? Вы имеете в виду * только * print "Base Called"? –
В принципе игнорировать метод сохранения детей полностью и выполнять только родительский метод – rh0dium
Вы всегда можете использовать 'BaseClass.save (obj)'. Или используйте 'super', если вы хотите, чтобы он был более общим. Хотя, это ** кричит ** «Я не должен использовать наследование» –