Python получает тип поля класса?

#python #python-3.x #type-hinting #mypy #python-typing

Вопрос:

Есть ли способ получить тип поля класса в Python для использования в качестве аннотации типа?

 import dataclasses

@dataclasses.dataclass
class A:
  field: str

def main() -> None:
  value: A.field = 123  # Want mypy to flag an error here
 

Где A.field подразумевается ссылка на тип str , тип A.field .

Я хотел бы сделать это, чтобы раньше фиксировать ошибки для переменных, которые в конечном итоге могут быть назначены полям.

Комментарии:

1. Нет. Я не думаю, что это так.

2. Я думаю, что это слишком динамично для статической проверки типов, чтобы понять это.

3. @AlexWaygood Я спрашиваю, так как я использую аналогичный синтаксис из TypeScript и привык использовать его в C . Так что в общем случае это то, что может сделать статическая проверка типов.

4. Тем не менее, я не думаю, что это то, на что в настоящее время способны какие-либо статические средства проверки типов Python. Рад, что оказался неправ! 🙂

5. можете ли вы подробнее рассказать о том, почему вам нужно, чтобы ошибки были обнаружены раньше? Почему бы не поднять их, когда вы делаете A ? Я думаю, что ответ на этот вопрос может ответить на ваш вопрос