Значение AsyncFunctionDef
никогда не требуется во время выполнения, только mypy
в двух Python -2-совместимых подсказках типа (в строках 1298 и 1318). if False
предотвращает выполнение назначений во время выполнения, но позволяет mypy
видеть правильный базовый тип для использования во время проверки типа. (Это также предотвращает повышение ImportError
при попытке импортировать модуль typing
в Python 2.)
Было бы более понятно использовать typing.TYPE_CHECKING
(значение которого False
во время выполнения, но True
, когда mypy
работает) здесь, за исключением того, что typing.TYPE_CHECKING
равно и недоступно в Python 2.