Junior
Czym jest zmienna statyczna w Pythonie?
sobes.tech AI
Odpowiedź od AI
W Pythonie, zmienna statyczna to zmienna należąca do klasy, a nie do konkretnego egzemplarza klasy. Jej wartość jest współdzielona między wszystkimi egzemplarzami klasy.
Główne cechy:
- Zakres: W obrębie klasy.
- Czas życia: Istnieje przez cały czas działania programu.
- Dostęp: Może być dostępna zarówno przez nazwę klasy, jak i przez instancję klasy (chociaż dostęp przez nazwę klasy jest preferowany, aby wskazać na statyczny charakter zmiennej).
Przykład użycia:
class MyClass:
# Zmienna statyczna
static_variable = 10
def __init__(self, instance_variable):
# Zmienna instancji
self.instance_variable = instance_variable
# Dostęp do zmiennej statycznej przez nazwę klasy
print(MyClass.static_variable)
# Tworzenie instancji
obj1 = MyClass(20)
obj2 = MyClass(30)
# Dostęp do zmiennej statycznej przez instancje
print(obj1.static_variable)
print(obj2.static_variable)
# Zmiana zmiennej statycznej przez nazwę klasy
MyClass.static_variable = 15
# Wartość zmieniła się dla wszystkich instancji
print(obj1.static_variable)
print(obj2.static_variable)
W tym przykładzie static_variable jest zmienną statyczną. Istnieje w pojedynczej instancji dla całej klasy MyClass, a jej wartość jest współdzielona między obiektami obj1 i obj2. Zmiana przez nazwę klasy MyClass.static_variable = 15 odzwierciedla się na wszystkich instancjach.