Junior
181
Ako sa implementujú statické metódy v Pythone?
Odpoveď od AI
sobes.tech AI
Statická metóda nie je viazaná na inštanciu triedy ani na samotnú triedu. Správa sa ako bežná funkcia, ale nachádza sa v priestore mien triedy.
Implementuje sa pomocou dekorátora @staticmethod.
class MyClass:
def __init__(self, value):
self.value = value
def instance_method(self):
# Metóda inštancie má prístup k self
print(f"Inštančná metóda: {self.value}")
@classmethod
def class_method(cls):
# Metóda triedy má prístup k triede cez cls
print(f"Triedna metóda: {cls.__name__}")
@staticmethod
def static_method(x, y):
# Statická metóda neprijíma implicitný argument (self alebo cls)
print(f"Statická metóda: {x + y}")
# Volanie statickej metódy
MyClass.static_method(5, 10)
# Môže byť volaná aj cez inštanciu, ale nie je to odporúčané
obj = MyClass(20)
obj.static_method(1, 2)
Hlavné vlastnosti:
- Neprijíma prvý implicitný argument (
selfalebocls). - Nemá prístup k atribútom inštancie alebo triedy.
- Nachádza sa v priestore mien triedy pre logickú skupinu.
- Môže byť volaná ako cez triedu, tak aj cez inštanciu (hoci je preferované volanie cez triedu).
Hlavným účelom sú pomocné funkcie spojené s triedou, ale ktoré nezávisia od stavu konkrétnej inštancie alebo samotnej triedy (napríklad pomocné funkcie, validátory, generátory, ktoré logicky patria triede).