Сообщить об ошибке.

Тип аннотации ClassVar модуля typing в Python

Типизация переменной класса

Может использоваться как тип в аннотациях с помощью синтаксиса [].

Синтаксис:

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 = {}     # Это нормально