Назад к вопросам
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), которые уникальны для каждого объекта (экземпляра) класса.