Может использоваться как тип в аннотациях с помощью синтаксиса []
.
from typing import ClassVar ClassVar[X]
X
- тип переменной классаТип аннотации ClassVar
модуля typing
представляет собой конструкцию специального типа для обозначения переменных класса.
Аннотация переменной, заключенной в ClassVar
, указывает, что данный атрибут предназначен для использования в качестве переменной класса и не должен устанавливаться в экземплярах этого класса.
Применение:
class Starship: stats: ClassVar[dict[str, int]] = {} # переменная класса damage: int = 10 # переменная экземпляра
Тип аннотации ClassVar
принимает только типы и не может быть дополнительно подписан.
Тип аннотации ClassVar
не является самим классом и не должен использоваться с функциями isinstance()
или issubclass()
. ClassVar
не изменяет поведение среды выполнения Python, но может использоваться сторонними программами проверки типов.
Например, средство проверки типов может пометить следующий код как ошибку:
enterprise_d = Starship(3000) enterprise_d.stats = {} # Ошибка, установка переменной класса на экземпляре. Starship.stats = {} # Это нормально