Методы класса Python: понимание параметра self и примеры

В Python параметр selfиспользуется для ссылки на экземпляр класса внутри его методов. В Python принято включать selfв качестве первого параметра во все методы экземпляра класса. Параметр selfпредоставляет доступ к атрибутам и методам этого конкретного экземпляра. Это помогает различать переменные экземпляра и локальные переменные внутри метода.

Вот некоторые часто используемые методы в классах Python с примером:

  1. __init__(): этот метод вызывается, когда объект создается из класса, и используется для инициализации атрибутов объекта.
class MyClass:
    def __init__(self, name):
        self.name = name
obj = MyClass("Example")
print(obj.name)  # Output: Example
  1. __str__(): этот метод возвращает строковое представление объекта и обычно используется для отладки или отображения информации об объекте.
class MyClass:
    def __init__(self, name):
        self.name = name
    def __str__(self):
        return f"MyClass object with name: {self.name}"
obj = MyClass("Example")
print(obj)  # Output: MyClass object with name: Example
  1. __len__(): этот метод возвращает длину объекта. Он обычно используется для встроенных типов, таких как строки, списки и словари.
class MyList:
    def __init__(self, items):
        self.items = items
    def __len__(self):
        return len(self.items)
my_list = MyList([1, 2, 3, 4, 5])
print(len(my_list))  # Output: 5
  1. __getitem__(): этот метод позволяет получить доступ к элементам объекта с помощью индексации или нарезки.
class MyList:
    def __init__(self, items):
        self.items = items
    def __getitem__(self, index):
        return self.items[index]
my_list = MyList([1, 2, 3, 4, 5])
print(my_list[2])  # Output: 3
  1. __setitem__(): этот метод позволяет изменять элементы объекта с помощью индексации или нарезки.
class MyList:
    def __init__(self, items):
        self.items = items
    def __setitem__(self, index, value):
        self.items[index] = value
my_list = MyList([1, 2, 3, 4, 5])
my_list[2] = 10
print(my_list.items)  # Output: [1, 2, 10, 4, 5]