В чем разница между атрибутом класса и объекта
Python
Middle
Без компании
В чем разница между атрибутом класса и объекта
Ответы
Атрибуты класса принадлежат самому классу и общие для всех его экземпляров. Атрибуты объекта уникальны для каждого экземпляра класса.
```
class MyClass:
class_attr = "I'm a class attribute" # Атрибут класса
def __init__(self, obj_attr):
self.obj_attr = obj_attr # Атрибут объекта
# Доступ к атрибуту класса
print(MyClass.class_attr) # "I'm a class attribute"
# Создаем экземпляры
obj1 = MyClass("Instance 1")
obj2 = MyClass("Instance 2")
# Атрибуты объекта уникальны
print(obj1.obj_attr) # "Instance 1"
print(obj2.obj_attr) # "Instance 2"
# Изменение атрибута класса влияет на все экземпляры
MyClass.class_attr = "Changed"
print(obj1.class_attr) # "Changed"
print(obj2.class_attr) # "Changed"
```
**Ключевые отличия:**
- Атрибуты класса создаются вне `__init__`, атрибуты объекта — внутри.
- Изменение атрибута класса отражается на всех экземплярах, атрибуты объекта независимы.
- Атрибуты класса можно использовать без создания экземпляра.