class MyClass:
      class_attribute = "Это атрибут класса"
      def __init__(self, instance_attribute):
          self.instance_attribute = instance_attribute
  MyClass.class_attribute.
В Python атрибуты класса определяются двумя основными способами:
Эти атрибуты принадлежат самому классу и доступны всем экземплярам класса. Обычно используются для определения общих свойств или констант.
class MyClass:
    class_attribute = "Это атрибут класса"
    def __init__(self, instance_attribute):
        self.instance_attribute = instance_attribute
print(MyClass.class_attribute)  # Вывод: Это атрибут класса
instance = MyClass("Это атрибут экземпляра")
print(instance.class_attribute) # Вывод: Это атрибут класса (доступ через экземпляр)
      @classmethod):
      Методы класса могут добавлять или изменять атрибуты класса. Они принимают класс (cls) в качестве первого аргумента, что позволяет им работать с атрибутами класса.
class MyClass:
    class_attribute = "Начальное значение"
    @classmethod
    def update_class_attribute(cls, new_value):
        cls.class_attribute = new_value
print(MyClass.class_attribute)  # Вывод: Начальное значение
MyClass.update_class_attribute("Новое значение")
print(MyClass.class_attribute)  # Вывод: Новое значение
      Важные моменты:
MyClass.class_attribute), хотя к ним также можно получить доступ через экземпляры класса (instance.class_attribute).  Однако, изменение атрибута через экземпляр может привести к созданию атрибута экземпляра с тем же именем, который "затеняет" атрибут класса.self.instance_attribute) определяются внутри метода __init__ и принадлежат конкретному экземпляру класса.  Каждый экземпляр может иметь свое собственное значение для атрибута экземпляра.Пример с динамическим добавлением атрибута класса:
class MyClass:
    pass
MyClass.new_attribute = "Динамически добавленный атрибут"
print(MyClass.new_attribute)  # Вывод: Динамически добавленный атрибут
  Этот способ показывает, что атрибуты класса можно добавлять и после определения самого класса.