Я хочу иметь возможность проверить, переписал ли дочерний класс метод. Например,
class Foo:
def __init__(self):
# Is there something following this sort of spec?
print("overridden" if self.bar != Foo.bar else "not overridden")
def bar(self):
return 0
Унаследованным методом, который перезаписывает bar
, может быть:
class Kung(Foo):
def __init__(self):
super(Kung, self).__init__()
def bar(self):
return 1
В этом случае Kung()
должно вывести «переопределено», но Foo()
должно печать "не переопределена". Могу ли я проверить, был ли bar
перезаписан в __init__
из Foo без проверки возвращаемого значения?