Я пытаюсь понять подсказки типов в Python 3.6. Я использую PyCharm с mypy плагином . Я прочитал PEP484 , поэтому мне показалось, что я достаточно хорошо понимаю, как работают аннотации типов.
По большей части аннотации функций и методов работают, как и ожидалось. Однако аннотации к отдельным переменным заставляют меня сомневаться, действительно ли я понял идею.
Возьмите следующий пример:
b: Tuple[str, int] = 4
a: Tuple[str, int] = "s", 4
Здесь я ожидал, что a
пройдет проверку типа, а b
- нет. К сожалению, mypy говорит обратное: b
проходит, а a
нет.
Встроенная проверка типов PyCharm ничего не указывает, что странно, а также работает, как и ожидалось, с типами параметров и возвращаемых значений для функций и методов.
Я что-то не так понял или это какая-то ошибка? Спасибо за помощь.