Анотация типов
Аннотации типов – это способ объявить ожидаемые типы аргументов и возвращаемого значения функции, переменных и атрибутов.
Допустимые значения анотации типов
конкретный класс, например str или FrenchDeck;
параметризованный тип коллекции, например
list[int], tuple[str, float]
и т. д.;typing.Optional
, напримерOptional[str]
, для объявления поля, которое может принимать значения типаstr
илиNone
.Переменную можно также инициализировать значением. (
var_name: some_type = a_value
)
[!info] Важно на этапе импорта, когда модель загружается, Python читает их и строит словарь annotations, который typing.NamedTuple и @dataclass затем используют для дополнения класса.
class DemoPlainClass:
a: int # заносится в анотацию
b: float = 1.1 # заносится в анотацию и проставляется значение атрибуту класса
c = 'spam' # обычный атрибут класса, а не анотация
1234
Для поля a заводится запись в
__annotations__
, но больше оно никак не используется: атрибут с именем a в классе не создается.Поле b сохраняется в аннотациях и, кроме того, становится атрибутом класса со значением
1.1
.c – это самый обычный атрибут класса, а не аннотация
Last updated
Was this helpful?