我希望能够做到:
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)
但是,我得到Invalid annotation for 'arg'. typing.Type[__main__.arg] is not a class.
我想singledispatch
暂时还不能完全支持typing
。有什么优雅的解决办法吗?在
升级版
我不能修改A
和B
。在
您可以给
A
一个元类,A
的所有子类都将是该元类的实例:相关问题 更多 >
编程相关推荐