Sobes.tech
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.