Sobes.tech
Junior

Kas yra self Python?

sobes.tech AI

Atsakymas iš AI

self Python'e yra pirmasis klasės metodo argumento. Jis atstovauja pačią objekto instanciją, per kurią buvo iškviestas metodas.

self pagrindinės savybės:

  • Nuoroda į instanciją: Leidžia pasiekti atributus ir iškviesti kitus metodus šiame konkrečiame instance.
  • Vardų konvencija: self yra tradicinis, bet ne privalomas pavadinimas. Galite naudoti bet kurį kitą pavadinimą, tačiau self yra plačiai priimtas standartas, kuris padaro kodą skaitomesnį.
  • Automatiškai perduodamas: Kai kviečiate instancijos metodą, Python automatiškai perduoda nuorodą į kviečiantį objektą kaip pirmą argumentą (self). Jo nurodyti nereikia.
  • Nėra statiniuose ir klasės metoduose: Statiniuose metoduose (@staticmethod) self nėra, nes jie nėra susiję su konkrečia instancija. Klasės metoduose (@classmethod) pirmasis argumentas yra nuoroda į patį klasę (cls), o ne į instanciją.

Pavyzdys:

class MyClass:
    def __init__(self, value):
        # Priskiriame perduotą reikšmę instancijos atributui `value`
        self.value = value

    def print_value(self):
        # Naudojame `self`, kad pasiektume šios instancijos `value` atributą
        print(f"Value is: {self.value}")

# Sukuriame klasės instanciją
obj = MyClass(10)

# Iškviečiame instancijos metodą. Python automatiškai perduoda `obj` kaip `self`
obj.print_value()

Šiame pavyzdyje self metodų __init__ ir print_value viduje nurodo į objektą obj. Be self būtų neįmanoma pasiekti value atributo, kuris priklauso būtent šiai MyClass instancijai.