Sobes.tech
Junior

Mi az a self a Pythonban?

sobes.tech MI

Válasz az MI-től

A self Pythonban az osztály példánymetódusának első argumentuma. Ez az objektum maga, amelyen a metódus hívásra került.

A self fő jellemzői:

  • Referencia a példányra: Lehetővé teszi az attribútumok elérését és más metódusok hívását az adott példányon.
  • Névkonvenció: A self hagyományos, de nem kötelező név. Bármilyen más név is használható, de a self az általánosan elfogadott, ami olvashatóbbá teszi a kódot.
  • Automatikusan átadódik: Egy példánymetódus hívásakor a Python automatikusan átadja a hívó példányra mutató hivatkozást első argumentumként (self). Nem kell megadni a hívás során.
  • Hiányzik statikus és osztálymetódusokból: A statikus metódusokban (@staticmethod) nincs self, mivel nem kötődnek konkrét példányhoz. Az osztálymetódusokban (@classmethod) az első argumentum a saját osztályra mutató hivatkozás (cls), nem a példány.

Használati példa:

class MyClass:
    def __init__(self, value):
        # A megadott érték hozzárendelése a példány attribútumához 'value'
        self.value = value

    def print_value(self):
        # A `self` segítségével hozzáférünk az adott példány `value` attribútumához
        print(f"Value is: {self.value}")

# Példány létrehozása
obj = MyClass(10)

# Példánymetódus hívása. A Python automatikusan átadja az `obj`-t `self`-ként
obj.print_value()

Ebben a példában a self a __init__ és a print_value metódusokon belül az obj objektumra utal. self nélkül nem lehetne hozzáférni a value attribútumhoz, amely pontosan ennek az MyClass példánynak a része.