Singledispatch и тип в качестве входного аргументаPython

Программы на Python
Anonymous
Singledispatch и тип в качестве входного аргумента

Сообщение Anonymous »

Я хочу иметь возможность сделать это:

Код: Выделить всё

from typing import Type
from functools import singledispatch

class A:
pass

class B(A):
pass

@singledispatch
def foo(arg):
print('default')

@foo.register
def _(arg: Type[A]):
print(arg)

foo(A)
foo(B)
Однако я получаю неверную аннотацию для «arg». typing.Type[__main__.arg] не является классом.

Я думаю, что Singledispatch просто не поддерживает типизацию полностью на данный момент. Есть ли какой-нибудь элегантный обходной путь?

UPD
Я не могу изменить A и B.< /п>

Подробнее здесь: https://stackoverflow.com/questions/553 ... t-argument

Вернуться в «Python»