Назад к вопросам
Junior
82
questionbank

Что такое статическая переменная в Python?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech 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 отражается на всех экземплярах.

Важно отличать статические переменные класса от переменных экземпляра (self.instance_variable), которые уникальны для каждого объекта (экземпляра) класса.