У меня есть следующий код с подсказками типа python. В нем есть куча ошибок. Mypy находит все ошибки в коде, но не ошибки в конструкторе S. Почему? не могу понять что происходит спасибо
код:
import typing
class T(object):
def __init__(self, a: int, b: str = None) -> None:
self.a = a
self.b: typing.Union[str, None] = b
self._callback_map: typing.Dict[str, str] = {}
class S(T):
def __init__(self):
super().__init__(self, 1, 2)
self._callback_map[1] = "TOTO"
s = T(1, 1)
t = T(1, b=2)
t._callback_map[2] = "jj"
s = T(1, 2)
t = T(1, b=2)
t._callback_map[2] = "jj"
вывод mypy:
t.py:22: error: Argument 2 to "T" has incompatible type "int"; expected "Optional[str]"
t.py:24: error: Argument "b" to "T" has incompatible type "int"; expected "Optional[str]"
rt.py:25: error: Invalid index type "int" for "Dict[str, str]"; expected type "str"
Это нормально, но те же ошибки (те же строки) в 'init' в строке 16, 17, 18 вообще не найдены...
b
вclass T(object)
относится кtype str
, и вы передаете int изclass S(T)
, почему? - person Surya Tej   schedule 24.05.2018