Почему подсказки типа для переменных не обрабатываются как подсказки типа для параметров функции? - PullRequest
1 голос
/ 17 января 2020

При написании функции в Python с такими подсказками типа:

def foo(token: Token=None):
  pass

Преобразуется в подсказку этого типа: Optional[Token]. При необязательном значении также принимается значение None.


При написании того же типа подсказки для поля класса, оно не ведет себя так же:

class bar:
  foo: Token = None

Здесь подсказка типа шашки, как встроенный в отчетах PyCharms:

Ожидаемый тип 'Token', вместо него есть None.

Мои вопросы:

  • Почему в случае параметров подсказка и None неявно объединены в Optional[...]?
  • Почему поля ведут себя по-разному, имея одинаковый синтаксис?

Я использую PyCharm 2019.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...