Sobes.tech
Junior

Какво е self в Python?

sobes.tech AI

Отговор от AI

self в Python е първият аргумент на метод за инстанция на клас. Той представлява самия обект, чрез който е извикан методът.

Ключови характеристики на self:

  • Референция към инстанцията: Позволява достъп до атрибутите и извикване на други методи на тази конкретна инстанция.
  • Конвенция за именуване: self е традиционно, но не е задължително име. Може да се използва всяко друго име, но self е широко приетият стандарт, който прави кода по-лесен за четене.
  • Автоматично се предава: При извикване на метод за инстанция, Python автоматично предава референция към извикващия обект като първи аргумент (self). Не е необходимо да го дефинирате при извикване.
  • Липсва при статични и класови методи: В статичните методи (@staticmethod) self липсва, тъй като те не са свързани с конкретен обект. В класовите методи (@classmethod) първият аргумент е референция към самия клас (cls), а не към обект.

Пример за използване:

class MyClass:
    def __init__(self, value):
        # Назначаваме подадената стойност на атрибута на инстанцията 'value'
        self.value = value

    def print_value(self):
        # Използваме 'self' за достъп до атрибута 'value' на тази инстанция
        print(f"Value is: {self.value}")

# Създаваме инстанция на класа
obj = MyClass(10)

# Извикваме метода на инстанцията. Python автоматично предава 'obj' като 'self'
obj.print_value()

В този пример, self в методите __init__ и print_value се отнася за обекта obj. Без self нямаше да е възможно да се достъпи атрибутът value, който принадлежи точно на тази инстанция на MyClass.