Понимание статического экземпляра и локальных переменных в Python

В Python мы можем определять переменные внутри функций или методов. Обычно используются два типа переменных: статические переменные экземпляра и локальные переменные.

  1. Статические переменные экземпляра:
    Статические переменные экземпляра определяются внутри класса, но вне любого метода. Они являются общими для всех экземпляров класса. Вот пример:
class MyClass:
    static_var = 10  # Static instance variable

    def __init__(self):
        self.instance_var = 20  # Instance variable

    def my_method(self):
        local_var = 30  # Local variable

В приведенном выше коде static_var— это статическая переменная экземпляра, доступ к которой могут получить все экземпляры класса MyClass. Каждый экземпляр MyClassбудет иметь собственную копию переменной instance_var. Переменная local_var — это локальная переменная, доступ к которой возможен только внутри метода my_method.

  1. Локальные переменные.
    Локальные переменные определяются внутри метода или функции и доступны только внутри этого метода/функции. Они имеют ограниченную сферу применения и обычно носят временный характер. Вот пример:
def my_function():
    local_var = 10  # Local variable
    print(local_var)
my_function()  # Output: 10
print(local_var)  # Raises NameError: name 'local_var' is not defined

В приведенном выше коде local_var— это локальная переменная, определенная в функции my_function. Доступ к нему возможен только внутри этой функции и недоступен вне ее.