Sobes.tech
Junior

Какво е статична променлива в Python?

sobes.tech AI

Отговор от AI

В Python статична променлива е променлива, която принадлежи към класа, а не към конкретен негов екземпляр. Нейната стойност се споделя между всички екземпляри на класа.

Основни характеристики:

  • Обхват: В рамките на класа.
  • Време на живот: Съществува през цялото време на изпълнение на програмата.
  • Достъп: Може да бъде достъпна както чрез името на класа, така и чрез екземпляр на класа (макар че достъпът чрез името на класа е по-препоръчителен, за да се обозначи статичната природа).

Пример за използване:

class MyClass:
    # Статична променлива
    static_variable = 10

    def __init__(self, instance_variable):
        # Променлива на екземпляра
        self.instance_variable = instance_variable

# Достъп до статичната променлива чрез името на класа
print(MyClass.static_variable)

# Създаване на екземпляри
obj1 = MyClass(20)
obj2 = MyClass(30)

# Достъп до статичната променлива чрез екземпляри
print(obj1.static_variable)
print(obj2.static_variable)

# Промяна на статичната променлива чрез името на класа
MyClass.static_variable = 15

# Стойността се промени за всички екземпляри
print(obj1.static_variable)
print(obj2.static_variable)

В този пример static_variable е статична променлива. Тя съществува в единствен екземпляр за цялата класа MyClass и нейната стойност се споделя между обектите obj1 и obj2. Промяната чрез името на класа MyClass.static_variable = 15 се отразява на всички екземпляри.