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:
selfyra tradicinis, bet ne privalomas pavadinimas. Galite naudoti bet kurį kitą pavadinimą, tačiauselfyra 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)selfnė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.