Clases en Python [Guía Completa]

Todo lo que debes saber sobre las clases en Python

 

Creando una clase

En nuestro ejemplo, crearemos los “planos”  para una persona. En comparación con la mayoría de los lenguajes, la sintaxis para definir una clase simple es muy mínima en Python.

En esta actividad, crearemos nuestra primera clase, llamada Person. Los pasos son los siguientes:

En su terminal, declare la clase usando la palabra clave class Python, seguida del nombre de la class Person. En el bloque, tenemos la palabra clave pass, que se utiliza como marcador de posición para el destino del resto de nuestra definición de clase:

class Person

Esta estructura de Person puede encapsular diferentes atributos y métodos que serán específicos para ese objeto. Veremos esto con más profundidad más adelante en la línea.

Instanciando un objeto Person

Tener un plano para construir algo es un gran primer paso. Sin embargo, los planos no son muy útiles si no puedes construir lo que describen. Instanciar un objeto de una clase es el acto de construir lo que describe la clase.

De la clase Person que hemos definido, crearemos una instancia de un objeto Person. Los pasos son los siguientes:

Cree un objeto Person y asígnelo a la variable jack:

class2

Ahora cree otro objeto y asígnelo a la variable Jill

class3

Haga una comparación entre Jack y Jill para verificar si son objetos diferentes:

class4

Añadiendo atributos a un objeto

El método init

La forma adecuada de agregar atributos a un objeto es definiéndolos en el método de construcción del objeto. Un método constructor reside en la clase y se llama para crear un objeto. A menudo toma argumentos que se usan para establecer los atributos de ese objeto instanciado.

En Python, el método constructor para un objeto se llama __init __ (). Como su nombre lo indica, se llama al inicializar un objeto de una clase. Debido a esto, puede usarlo para pasar los atributos iniciales con los que desea que se construya su objeto.

La función hasattr () verifica si un objeto tiene un atributo o método específico. Cuando llamamos a la función hasattr () en la clase Person para verificar si tiene un método __init__, devuelve True. Esto también se aplica a todas las instancias de la clase:

class5

Este método está aquí porque se hereda. Veremos más de cerca en qué consiste la herencia más adelante en este tutorial.

Podemos definir este método constructor en nuestra clase como una función y especificar atributos que deberán pasarse al crear instancias de un objeto:

class6

Anteriormente, comparamos clases con planos de objetos. En el ejemplo anterior, estamos agregando más detalles a ese plano y declarando que cada objeto Person que se creará debe tener un atributo de nombre.

Tenemos los argumentos self y name en la firma del método __init__. El argumento del nombre se refiere al nombre de la persona, mientras que self se refiere al objeto que actualmente estamos en proceso de crear.

De hecho aquí puede usarse otro nombre y no necesariamente self, pero por conveniencia y facilidad de recordarlo usaremos self de manera de buena práctica de código.

Recuerde, el método __init__ se llama cuando se crean instancias de objetos de la clase Person, y dado que cada persona tiene un nombre diferente, debemos poder asignar diferentes valores a diferentes instancias. Por lo tanto, adjuntamos el atributo de nombre de nuestro objeto actual en la línea self.name = name.

Añadiendo atributos a una clase

En esta actividad, agregaremos atributos a una clase Person. Los pasos son los siguientes:

Primero, cree la clase Person con un atributo de nombre e instancia un objeto sin pasar ningún argumento:

class7

Python nos arroja un error ya que necesitamos pasar un argumento de nombre al instanciar un objeto Person. Este argumento se pasa al método __init__ cuando se instancia el objeto.

Instanciar un objeto Persona, pasando un argumento por nombre:

class8

Ahora intente acceder al atributo desde nuestra instancia:

class9

Redefina la clase Person para que defina más atributos que las instancias deberían inicializarse con, por ejemplo, nombre, edad y altura en centímetros:

class10

Ahora, al crear instancias de un objeto Person, necesitaremos pasar los tres argumentos: nombre (name), edad (age) y altura_en_cm (height_in_cm).

Pase los tres valores, como se muestra aquí:

class11

Definiendo una clase y objetos

Ejercicio

Supongamos que es un desarrollador de back-end para una plataforma de noticias tecnológicas. Se le ha pedido que diseñe un sistema de plantillas para sus artículos de noticias. Para hacer esto, deberá ejecutar alguna prueba de conceptos.

Defina la clase MobilePhone en el archivo main.py para que el siguiente código se ejecute sin error:

class12

 

Eso les dejo de tarea. Espero ver sus respuestas en los comentarios.

Pueden ver la solución clickando aquí

 

Creando métodos en la clase

Hasta ahora, hemos visto cómo agregar atributos a un objeto. Como mencionamos anteriormente, los objetos también se componen de comportamientos conocidos como métodos. Ahora veremos cómo agregar nuestros propios métodos a las clases.

Reescribiremos nuestra clase Person original para incluir un método speak (). Los pasos son los siguientes:

Cree un método speak () en nuestra clase Person, de la siguiente manera:

class13

La sintaxis para definir un método de instancia es familiar. Pasamos el argumento self que, como en el método __init__, se refiere al objeto actual en cuestión. Pasar self nos permitirá obtener o establecer los atributos del objeto dentro de nuestra función. Siempre es el primer argumento de un método de instancia.

Instanciar un objeto y llamar al método que hemos definido:

class14

Pasando argumentos a métodos de instancias

Al igual que con las funciones normales, puede pasar argumentos a los métodos en una clase. Aprendamos ahora cómo pasar argumentos a los métodos de instancia.

class15

Y al inicializarlos obtenemos como ejemplo:

class16

Agreguemos más lógica al método que verifica el nombre de la persona e imprima un mensaje diferente si la persona se llama Rogers:

class17

Y ahora probemos el método greet:

class18

Establecer atributos de instancia dentro de métodos de instancia

Crearemos un método de cumpleaños () que incremente la edad de la persona.

Primero, implemente el método birthday (), que toma la edad y la incrementa en 1:

class19

Creemos una instancia de una Persona y verifiquemos la edad.

class20

Llame al método de cumpleaños y verifique la edad nuevamente:

class21

Felicidades, ahora puedes definir y usar clases. Puede agregarles métodos y atributos, así como crear instancias de objetos y usarlos. Si bien hay más que aprender, ya tiene las herramientas necesarias para crear programas básicos orientados a objetos.

Previous

Crea tu propia nube de palabras (Word Cloud)

Generación de música con Python

Next

1 comentario en “Clases en Python [Guía Completa]”

  1. Very nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed
    surfing around your blog posts. After all I’ll be
    subscribing to your rss feed and I hope you write again very
    soon!

    Responder

Deja un comentario