Variables de Clases: Estáticas o de Instancia – Python OOP

Continuando con las lecciones de Python orientado a objetos es el momento de ver variables de clases e instancia y métodos de clase e instancia.

Como habíamos visto anteriormente los atributos y métodos definen las características del objeto y modifican su estado. Son datos que están asociados a ellas. De ellos se desprenden dos tipos de variables, de clase o de instancia (objeto).

Antes de aprender esto me gustaría repasar lo siguiente:

  • Las clases agrupan objetos con propiedades y características en común, por ejemplo (Perros)
  • Instancia significa crear un objeto a partir de una clase.
  • Los atributos y métodos son elementos que almacenan datos (diferenciando los objetos dentro de la misma clase) utilizando variables de instancia.

Las variables de clase corresponden a una clase determinada y son accesibles sólo invocando la clase.(Ver mas abajo)

Las variables de instancia también a una clase determinada pero sólo es accesible mediante la instancia del objeto.(Ver mas abajo)

Y lo mismo sucede con los métodos!

Veamos con mas profundidad y ejemplifiquemos esto.

Variables de clase

Las variables de clases o estáticas como dijimos mas arriba son definidas dentro de una clase, mas específicamente luego del encabezado. Pero nunca dentro de un método, porque eso la convertiría en una variable de instancia.

Sintaxis de variables estáticas de clase

Veamos ahora cómo crear una variable de clase. Primeramente debemos crear una clase por supuesto!.

Puedes ver donde declaramos la variable de clase? Justo después del encabezado de la clase y luego de la Descripción de clase. Si esto no lo sabías ahora lo sabes, es para organizarnos mejor. La creamos utilizando comillas simples!

En este caso la variable del tipo Booleano «collar» es igual a True. Determina que todos nuestros perros tienen collares.

Acceso

Ahora esta variable al ser de tipo clase, nos permite acceder a ella sin necesidad de instanciar (es decir, de crear un objeto perteneciente a esta clase). Por ende para acceder a ella basta con colocar la clase y el nombre de la variable:

Resultado:

True

Variables de instancia

Las variables de instancia son aquellas que se relacionan con una única instancia de una clase.

En el código anterior las variables de instancia son salud y hambre. Porque dependen exclusivamente de la instancia de clase. Es decir que para acceder a ellas debemos si o si instanciar: Crear un objeto de la clase Perros.

Sintaxis de variables de instancia

Resultado:

50

Lo mismo sucede con los métodos. Están los métodos de clase, estáticos y de instancia:

Métodos de clase

Los métodos de clases son similares a las variables de clase y nos permite acceder a ellos sin instanciar un objeto. Pero para indicarle a python que un método es de clase debemos usar un decorador que nos permite modificar las funciones utilizando otra función para ampliar su funcionalidad. Estos decoradores los veremos en profundidad en la próxima lección, ahora nos enfocaremos en diferenciar los métodos.

Sintaxis de los métodos de clase

Para indicarle a python que se trata de un método de clase debemos utilizar el decorador @classmethod

Resultado:

El animal corre 12 kilómetros

Como ves en el ejemplo no necesitamos instanciar ningún objeto para acceder a este método de la clase Animal. Solo llamamos el método mediante la clase, y brindamos los argumentos en este caso los km que corrio el animal 😛

 

Sintaxis de los métodos de instancia

Los métodos de instancia son aquellos que utilizamos normalmente a los que no necesitamos añadir ningún decorador y que dependen estrictamente de que instanciemos para poder llamarlos. Observa:

Resultado:

Soy una jodida ave de color verdeclase ave

 

Sintaxis de los métodos estáticos

Los métodos estáticos requieren del decorador @staticmethod para indicarle a python que se trata del mismo. Este tipo de método nos permite llamar una función elegantemente dentro de una clase sin que este ligada a la clase misma ni a la instancia. Veamos un ejemplo con el mismo código anterior.

Resultado:

El ave se fue volando 1 kilometro

Si le pasamos el argumento False en vez de True imprimirá que no puede volar.

Comprender las variables y métodos de clase nos sera beneficioso cuando comencemos a crear nuestros primeros programas o aplicaciones orientados a objetos.

Descansando en la nube: login offEspero te halla servido para comprender mejor las clases en python. No es difícil, pero lo que si es difícil es encontrarlo todo ordenado y ejemplificado de manera sencilla. No olvides compartir, recomendarle a algún amigo interesado en python o suscribirte a mi blog! Muchas gracias por leerme 🙂

 

 

 

Ayúdame a llegar a mas personas!
  • 3
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  • 3
  •  
  •  
  •  
  •  
  •