functools.singledispatch
помогает определить общий метод отправки. Между тем, существует super()
для вызова методов или доступа к атрибутам суперкласса.Эквивалент супер() для functools.singledispatch
Есть ли что-то вроде super()
, которое может использоваться с singledispatch
? Я попытался следующие, но результат super(Derived, value)
просто не экземпляр Base
, поэтому он не работает, как я ожидал:
from functools import singledispatch
@singledispatch
def hello(value):
return ['default']
@hello.register(Base)
def hello_base(value):
return hello(super(Base, value)) + ['base']
@hello.register(Derived)
def hello_derived(value):
return hello(super(Derived, value)) + ['derived']
print(hello(Derived())
# expected ['default', 'base', 'derived'],
# but actually is ['default', 'derived'].