Sobes.tech
Junior

¿Qué es una variable estática en Python?

sobes.tech AI

Respuesta de la IA

En Python, una variable estática es una variable que pertenece a la clase, no a una instancia específica de la clase. Su valor se comparte entre todas las instancias de la clase.

Características principales:

  • Ámbito: Dentro de la clase.
  • Tiempo de vida: Existe durante toda la ejecución del programa.
  • Acceso: Puede accederse tanto mediante el nombre de la clase como mediante una instancia de la clase (aunque el acceso mediante el nombre de la clase es preferible para indicar la naturaleza estática).

Ejemplo de uso:

class MyClass:
    # Variable estática
    static_variable = 10

    def __init__(self, instance_variable):
        # Variable de instancia
        self.instance_variable = instance_variable

# Acceso a la variable estática mediante el nombre de la clase
print(MyClass.static_variable)

# Creación de instancias
obj1 = MyClass(20)
obj2 = MyClass(30)

# Acceso a la variable estática mediante las instancias
print(obj1.static_variable)
print(obj2.static_variable)

# Modificación de la variable estática mediante el nombre de la clase
MyClass.static_variable = 15

# El valor ha cambiado para todas las instancias
print(obj1.static_variable)
print(obj2.static_variable)

En este ejemplo, static_variable es una variable estática. Existe en una única instancia para toda la clase MyClass y su valor se comparte entre los objetos obj1 y obj2. La modificación mediante el nombre de la clase MyClass.static_variable = 15 se refleja en todas las instancias.

Es importante distinguir las variables estáticas de clase de las variables de instancia (self.instance_variable), que son únicas para cada objeto (instancia) de la clase.