考虑以下尝试向功能parent
和child
添加类型提示的方法:
def parent(*, a: Type1, b: Type2):
...
def child(*, c: Type3, d: Type4, **kwargs):
parent(**kwargs)
...
MyPy抱怨kwargs
的类型为Dict[str, Any]
,但是参数a
和b
分别需要Type1
和Type2
。
我知道此错误的解决方案是通过以下方式重写child
:
def child(*, a: Type1, b: Type2, c: Type3, d: Type4, **kwargs):
parent(a=a, b=b)
...
但是如果parent
的参数列表长了很多,或者有函数grandchild
拥有自己的参数列表并且必须调用child
怎么办?您是否需要从所有下游函数中枚举参数及其类型?还是有一种优美的方式来处理**kwargs
的“按键”键入?