Answer
t.me/python_tesstОтвет:
A or B
A or B
default
default
Объяснение:
Простой и наглядный пример по вопросу метакласса. Вы можете дать A метакласс, и тогда все подклассы A будут экземплярами этого метакласса.
Код:
from functools import singledispatch
class AMeta(type): pass
class A(metaclass=AMeta): pass
class B(A): pass
@singledispatch
def foo(arg):
print('default')
@foo.register
def _(arg: AMeta):
print('A or B')
foo(A) # A or B
foo(B) # A or B
foo(A()) # default
class C: pass
foo(C) # default