__init__
доступ к атрибутам объекта осуществляется через ключевое слово self
. Например, для присвоения значения атрибуту name
используется self.name = value
. Доступ к значению атрибута осуществляется аналогично: self.name
.
Доступ к атрибутам объекта внутри метода __init__
осуществляется с использованием ключевого слова self
. self
является ссылкой на создаваемый экземпляр класса, и через него можно присваивать и получать значения атрибутов.
Пример:
class MyClass:
def __init__(self, name, age):
self.name = name # Присваиваем значение атрибуту name
self.age = age # Присваиваем значение атрибуту age
# Доступ к атрибутам внутри __init__
print(f"Создан объект с именем: {self.name}")
print(f"Возраст: {self.age}")
def greet(self):
# Доступ к атрибутам вне __init__, но внутри другого метода
print(f"Привет, меня зовут {self.name}, и мне {self.age} лет.")
# Создаем экземпляр класса
obj = MyClass("Alice", 30)
# Вызываем метод greet
obj.greet()
Объяснение:
__init__
, self.name = name
создает атрибут name
у объекта и присваивает ему значение, переданное в качестве аргумента name
. Аналогично для self.age
.__init__
мы можем получить доступ к только что созданным атрибутам, используя self.name
и self.age
. Это позволяет, например, выполнить какие-то дополнительные операции инициализации на основе этих атрибутов.greet
мы так же можем получить доступ к атрибутам через self
, так как self
всегда ссылается на экземпляр класса.Важно: self
должно быть первым параметром в определении метода класса (включая __init__
). Это соглашение, принятое в Python, и его нарушение приведет к ошибкам.
Использование self
позволяет правильно связывать атрибуты с конкретным экземпляром класса, обеспечивая инкапсуляцию и возможность работать с несколькими объектами одного класса независимо друг от друга.