Ответ
В Python атрибуты экземпляра (instance attributes) принадлежат конкретному объекту и доступны на протяжении всего его жизненного цикла. Их область видимости ограничена самим экземпляром.
Это означает, что доступ к ним можно получить как из методов самого класса (через self), так и извне, через ссылку на объект.
Пример:
class User:
def __init__(self, name, email):
# Атрибуты экземпляра, создаются при инициализации
self.name = name
self.email = email
def get_info(self):
# 1. Доступ к атрибутам внутри метода через self
return f"User: {self.name}, Email: {self.email}"
# Создаем экземпляр класса
user_obj = User("Alice", "alice@example.com")
# 2. Доступ к атрибутам извне через имя экземпляра
print(user_obj.name) # Вывод: Alice
print(user_obj.get_info()) # Вывод: User: Alice, Email: alice@example.com
Ключевые характеристики:
- Привязка к экземпляру: Каждый объект класса имеет свой собственный, независимый набор атрибутов. Изменение атрибута у одного объекта не влияет на другие.
- Доступ внутри класса: Методы класса получают доступ к этим атрибутам через первый аргумент, традиционно называемый
self. - Публичный доступ: По умолчанию все атрибуты экземпляра в Python являются публичными и доступны из любого места, где есть ссылка на объект.