@artempawww

Статическая типизация на питоне, почему не работает?

Имею вот такой огрызок кода:

def something (variable: int):
    print(variable)


variable: int аннотация типа, значит логично, что функция не будет принимать str, float и т.д.

Но, увы и ах... функция спокойно принимает str:
пук пук
Если вы это увидели, значит питон пропустил переменную

[Program finished]


def something(variable: int):
    print(variable)
    print("Если вы это увидели, значит питон пропустил переменную")

something("пук пук")

Почему питон игнорирует явную аннотацию . Я чего-то не понимаю?
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
Mi11er
@Mi11er
A human...
Потому что это type hitting, просто подсказка и питон, просто вам скажет в IDE , что функция ожидает один тип, а вы передали другой.
Все же Python - язык динамический.
Хотите строго, Go \ c# \ Java
Ответ написан
Ответы на вопрос 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Интерпретатор Python не осуществляет проверку типов:
The Python runtime does not enforce function and variable type annotations. They can be used by third party tools such as type checkers, IDEs, linters, etc.


Надо использовать mypy или еще какой-то другой инструмент.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы