self - это ссылка на экземпляр класса.
Используется внутри методов класса для доступа к атрибутам (переменным) и другим методам этого экземпляра.
Фактически, это способ, которым метод "знает", с каким именно объектом он работает.
Всегда указывается первым аргументом в определении метода класса.
В Python, self - это соглашение об именовании первого параметра в методе класса, который представляет экземпляр (объект) этого класса. Хотя можно использовать другое имя, крайне рекомендуется придерживаться self, так как это общепринятая практика и делает код более понятным для других разработчиков.
Роль self:
self позволяет методу получить доступ к атрибутам, специфичным для конкретного экземпляра класса. Например, если у вас есть класс Person с атрибутами name и age, вы можете установить и получить доступ к этим атрибутам через self.name и self.age.self позволяет методу вызывать другие методы, определенные в этом же классе, для текущего экземпляра. Это обеспечивает возможность организации кода и повторного использования логики.Примеры:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
def have_birthday(self):
self.age += 1
print(f"Happy birthday! Now I am {self.age} years old.")
def introduce(self):
self.greet() # Вызов другого метода экземпляра через self
# Создание экземпляра класса
person1 = Person("Alice", 30)
# Доступ к атрибутам экземпляра через self (неявно внутри методов)
person1.greet() # Output: Hello, my name is Alice and I am 30 years old.
# Вызов метода, изменяющего атрибут экземпляра через self
person1.have_birthday() # Output: Happy birthday! Now I am 31 years old.
person1.introduce() # Output: Hello, my name is Alice and I am 31 years old.
Важно:
self не является ключевым словом; это просто соглашение об именовании.self используется только в методах экземпляра (обычных методах, которые вызываются для конкретного объекта класса). Он не используется в статических методах или методах класса (которые используют @staticmethod и @classmethod декораторы, соответственно).person1.greet()), Python автоматически передает экземпляр (person1) в качестве первого аргумента (self) метода. Вам не нужно передавать его явно.В заключение, self является ключевым элементом объектно-ориентированного программирования на Python. Он позволяет экземплярам класса обращаться к своим собственным данным и методам, обеспечивая инкапсуляцию и организацию кода.