Clases y objetos en Python. Parte 9 Curso de Python de Principiante a Avanzado en 11 publicaciones de blog

Este artículo ayudará al lector a entender las clases básicas de Python junto con algunas aplicaciones básicas en el mundo real. Estaremos utilizando Visual Studio Code como nuestro editor de código. Si no has instalado Visual Studio Code, las instrucciones se dan en el primer blog.

Clases y objetos de Python – tabla de contenido:

  1. Clases de Python
  2. Clases de Python – definición
  3. Inicialización de clases de Python
  4. Escribamos nuestra primera clase de Python
  5. Atributos
  6. Comportamiento de la clase
  7. Objetos en Python
  8. Herencia

Clases de Python

Como hemos discutido en el primer blog, Python es un lenguaje de programación orientado a objetos. Hay tres frases que son muy importantes al discutir la programación orientada a objetos en Python. La primera es clase, la segunda sería un objeto, la tercera sería la herencia. Comencemos con qué es una clase.

Clases de Python – definición

Una clase es un plano o un programa extensible que ayuda en la creación de objetos. Una clase consiste en comportamiento y estado. El comportamiento de una clase se demuestra a través de funciones dentro de la clase que se llaman métodos. El estado de la clase se demuestra utilizando las variables dentro de la clase que se llaman atributos.

Inicialización de clases de Python

Una clase puede ser inicializada utilizando la siguiente sintaxis.

Una clase en Python se define utilizando la palabra clave “class” seguida del nombre de la clase. La sintaxis básica de la función de Python se ilustra a continuación.

Por ejemplo:

<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Clases_de_Python" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" />
# Crear una función
# clase Mono
class classname:

Nota: el nombre de la clase también tiene las mismas normas que la declaración de variables.

Escribamos nuestra primera clase de Python

# primera clase

class Animals:
 pass

En el bloque de código anterior, hemos escrito una clase que desarrollaremos más en el blog. Como puedes ver, hemos utilizado la palabra clave “class”.

Veamos ahora cómo agregar componentes a la clase de animales. Pero antes de eso, aprendamos sobre el constructor “__init__()”. Los constructores se utilizan para la instanciación de objetos. Aquí, el __init__() se utiliza para la instanciación de objetos. El constructor puede ser por defecto con solo self como argumento o parametrizado con los argumentos requeridos.

Atributos

Hay dos tipos diferentes de atributos, los primeros son variables de clase y los segundos son variables de instancia. Las variables de clase son las variables que son propiedad de la clase. Además, estas variables están disponibles para todas las instancias de la clase. Por lo tanto, su valor no cambiará incluso si la instancia cambia.

# variables de clase

class Animals:
 type=”mamíferos”

Las variables de instancia son las variables que pertenecen a las instancias mismas. Por lo tanto, cambiarán su valor a medida que la instancia cambie.

# variables de clase

class Animals:
 def __init__(self,legs):
  self.legs=legs
  

Nota: Las variables de instancia no están disponibles para acceso utilizando el nombre de la clase, porque cambian dependiendo del objeto que las accede.

Hagamos un programa que tenga tanto variables de clase como de instancia declaradas.

class Animals:
 type=”mamíferos”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 

En el programa anterior, hemos utilizado tanto variables de instancia como de clase. Por lo tanto, estas variables forman atributos de la clase.

Comportamiento de la clase

Como se discutió, el comportamiento de la clase está definido por los métodos dentro de la clase. Pero antes de entrar en la discusión sobre el comportamiento, tenemos que comenzar a discutir el parámetro “self”, que utilizamos en el __init__().

Self:

En términos muy simples, cada vez que adjuntamos algo a self, significa que la variable o función pertenece a esa clase. Además, con “self”, se pueden acceder a los atributos o métodos de la clase.

Métodos:

Los métodos de clase son funciones dentro de la clase que tendrán su primer argumento como “self”. Un método dentro de la clase se define utilizando la palabra clave “def”.

class Animals:
 type=”mamíferos”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”perro”:
   print(“¡guau guau!”)
  else:
   print(“no es un perro”)
 

En el método “bark” anterior, como estamos utilizando la variable name, que es una variable de instancia, la estamos accediendo utilizando “self” y esta función imprimiría “¡guau guau!”, solo si el nombre proporcionado al objeto es perro.

Hemos discutido la mayoría de los componentes de una clase, pero podrías estar pensando cómo ver si la clase está funcionando. La respuesta a esto es que a menos que creemos un objeto de la clase, no podremos ver lo que la clase está haciendo. Ahora, definamos y creemos un objeto de la clase.

Objetos en Python

Un objeto es una instancia de la clase. Una clase es solo un plano, pero el objeto es una instancia de la clase que tiene valores reales.

El código para definir o crear un objeto se ilustra a continuación.

class Animals:
 type=”mamíferos”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”perro”:
   print(“¡guau guau!”)
  else:
   print(“no es un perro”)
 
dog=Animals(“perro”,4)
 

Para crear un objeto, la sintaxis es objectname=classname(arguments). Por lo tanto, aquí estamos dando el nombre del animal como perro y el número de patas como 4. Ahora, el objeto de la clase está creado, el siguiente paso es usar el objeto para acceder a sus atributos. Para acceder a los atributos de una clase utilizando el objeto, recuerda que solo las variables de instancia se pueden acceder utilizando el objeto. Las variables de instancia en nuestra clase son name y legs.

class Animals:
 type=”mamíferos”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”perro”:
   print(“¡guau guau!”)
  else:
   print(“no es un perro”)
 
dog=Animals(“perro”,4)
print(dog.name)
print(dog.legs)
 

Como podemos ver, podemos acceder a las variables de instancia utilizando la notación de punto.

Exploramos la salida.

#Salida

perro
4

Para acceder a las funciones dentro de la clase o métodos, utilizaremos la notación de punto. El ejemplo se ilustra a continuación.

class Animals:
 type=”mamíferos”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”perro”:
   print(“¡guau guau!”)
  else:
   print(“no es un perro”)
 
dog=Animals(“perro”,4)
print(dog.name)
print(dog.legs)
print(dog.bark())
#Salida

perro
4
¡guau guau!

En el ejemplo anterior, podemos ver que estamos accediendo al método de clase “bark” utilizando el objeto dog que creamos. Podemos ver que no estamos utilizando el parámetro “self” en los argumentos de la función. Esto se debe a que no requerimos el uso de “self” fuera de la clase, ya que el objeto mismo está actuando como self.

Herencia

La herencia es un proceso a través del cual los atributos y métodos de la clase pueden ser pasados a una clase hija. La clase de donde la clase hija está heredando es la clase padre. La sintaxis para la herencia se ilustra a continuación.

#Herencia

class parent:

class child(parent):

De la ilustración anterior, podemos ver que para la sintaxis de herencia estamos colocando el nombre de la clase padre como un argumento para la clase hija. Utilicemos la clase Animals y hagamos una clase hija llamada dog. Esto se ilustra a continuación.

class Animals:
 type=”mamíferos”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”perro”:
   print(“¡guau guau!”)
  else:
   print(“no es un perro”)

class Dog(Animals):
 def __init__(self,name,legs,breed):
  Animals.__init__(self,name,legs)
  self.breed=breed

En el código de ejemplo anterior, hemos creado una clase dog que está extendiendo la clase animals que creamos antes. También estamos utilizando los parámetros de Animals utilizando Animals.__init__(arguments) que tiene name y legs que serán heredados a la clase dog. Luego estamos creando un atributo de instancia para la clase dog que es breed.

Ahora hagamos un objeto para la clase dog y accedamos a los atributos y métodos de la clase animals.

class Animals:
 type=”mamíferos”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”perro”:
   print(“¡guau guau!”)
  else:
   print(“no es un perro”)

class Dog(Animals):
 def __init__(self,name,legs,breed):
  Animals.__init__(self,name,legs)
  self.breed=breed

pug=Dog("perro",4,"pug")
pug.breed
pug.name
pug.legs
pug.bark()
#Salida

pug
perro
4
¡guau guau!

Como podemos ver en la salida, los atributos y métodos de la clase padre están siendo accedidos por el objeto de la clase hija.

En este blog, hemos cubierto algunos conceptos básicos de las clases en Python. En el próximo post del blog cubriremos el tema del manejo de archivos.

También te puede gustar nuestro Curso de JavaScript de Principiante a Avanzado.

Robert Whitney

Experto en JavaScript e instructor que capacita a departamentos de TI. Su objetivo principal es aumentar la productividad del equipo enseñando a otros cómo cooperar de manera efectiva mientras programan.

View all posts →

Robert Whitney

Experto en JavaScript e instructor que capacita a departamentos de TI. Su objetivo principal es aumentar la productividad del equipo enseñando a otros cómo cooperar de manera efectiva mientras programan.

Share
Published by
Robert Whitney

Recent Posts

¿Cómo atraer más clientes a tu negocio con marketing de video?

Los destinatarios recurren cada vez más a materiales en video. Las formas escritas se vuelven…

2 minutes ago

¿Cómo encontrar un copywriter?

La redacción publicitaria se ha convertido en una profesión extremadamente popular en tiempos recientes. Hay…

2 hours ago

¿Por qué necesitas una aplicación de bloqueo de tiempo? Las 8 mejores aplicaciones en 2023

¿Alguna vez tienes la sensación de que el día es demasiado corto para hacer todo…

3 hours ago

¿Qué es el software? Tipos y métodos de distribución – Crea y vende productos digitales #34

¿Qué es el software? ¿Cuáles son los tipos y métodos de distribución? Manteniéndonos en el…

5 hours ago

¿Cómo preparar un informe de investigación de UX? | Investigación de UX #34

Presentar y comunicar los hallazgos de la investigación es probablemente una de las habilidades más…

6 hours ago

¿Cómo crear un ebook? Aspectos esenciales del proceso. – Crea y vende productos digitales #8

¿Sabes cómo crear un ebook? ¿Conoces todos los aspectos esenciales del proceso de producción de…

8 hours ago