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
selfhagyományos, de nem kötelező név. Bármilyen más név is használható, de aselfaz á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) nincsself, 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.