Я работаю с большой существующей кодовой базой Python и хочу начать добавлять аннотации типов, чтобы получить некоторый уровень статической проверки. Я представляю себе что-то вроде Erlang , Strongtalk , или Типизированная схема / ракетка .
Я видел быстрые и грязные декораторы, которые вставляют динамические проверки на основе аннотаций параметров функции и возвращаемого типа, но я ищу что-то более надежное и который выполняет проверки во время компиляции.
Какие инструменты доступны прямо сейчас для такого рода вещей? Я знаком с компиляторами и проверкой типов и определенно готов улучшить неполный инструмент, если он имеет хорошую основу.
(Примечание: меня не интересует обсуждение плюсов и минусов статической типизации.)
РЕДАКТИРОВАТЬ : Пример:
def put(d, k, v):
d[k] = v
Я хотел бы иметь возможность аннотировать функцию put
как имеющую тип put
.
ОБНОВЛЕНИЕ : Новый PEP 484 (сентябрь 2014 г.) определяет стандарт статической типизации и аннотаций типов в Python 3.5+. Существует инструмент проверки типов mypy , совместимый с PEP 484.