PEP 484 добавил в Python расширенные возможности опциональной типизации. Польза от этого функционала большая - возможность создать статический анализатор Python программ, а значит еще до запуска узнать об многих ошибках.

Появился модуль typing, который в 3.5 есть по умолчанию, а начиная с 3.2 можно установить с PyPi Но что делать с кодом на 2.7? Хочется же больше ошибок вылавливать. Здесь на пользу приходят python stubs - .pyi файлы.

Пример такого файла:

def addTest(test: Testable) -> None: ...
def addTests(tests: Iterable[Testable]) -> None: ...
def run(result: TestResult) -> None: ...
def debug(self) -> None: ...
def countTestCases(self) -> int: ...

Многоточия - это часть формата. В файле .pyi декларируются функции с типами аргументов и возвращаемых значений, а тело уже будет их обычных .py файлов

Смысл: пользователь размечает часть своего кода типами, а автоматизированные средства будут проверять и оповещать о возможных ошибках. Но есть и недостатки - на данный момент мало инструментов, которые умеют такую проверку делать.

Ссылки для изучения:



Комментарии