MCVE:
class A:
def __init__(self, num: int):
self.value = num
class B(A):
def __init__(self): # Mypy: function is missing a type annotation
A.__init__(self, 7) # Mypy: Expression has type "Any"
我希望 Mypy 不要强迫我输入
self
。对我来说,self
的类型是什么是显而易见的,并且 Mypy 能够计算出 A
的类型,那么为什么不呢?我如何定义B
,这样我就不会被迫执行以下操作?
B
class A:
def __init__(self, num: int):
self.value = num
class B(A):
def __init__(self: 'B'):
A.__init__(self, 7)
如果注释了一个或多个其他参数,Mypy 将允许您在构造函数上省略返回类型,但您需要将其包含在无参数构造函数中。