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.
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.
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.
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.
# 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.
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.
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__().
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.
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.
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.
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.
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.
Los destinatarios recurren cada vez más a materiales en video. Las formas escritas se vuelven…
La redacción publicitaria se ha convertido en una profesión extremadamente popular en tiempos recientes. Hay…
¿Alguna vez tienes la sensación de que el día es demasiado corto para hacer todo…
¿Qué es el software? ¿Cuáles son los tipos y métodos de distribución? Manteniéndonos en el…
Presentar y comunicar los hallazgos de la investigación es probablemente una de las habilidades más…
¿Sabes cómo crear un ebook? ¿Conoces todos los aspectos esenciales del proceso de producción de…