Las clases de Python son como pla­n­ti­llas o planos de co­n­s­tru­c­ción. Con ellas puedes escribir código re­uti­li­za­ble en forma de atributos y métodos.

¿Qué son las clases de Python?

Una clase es un concepto abstracto que define atributos y métodos que un objeto puede tener. Las clases de Python actúan como pla­n­ti­llas para crear objetos concretos, que son in­s­ta­n­cias de esa clase. Por ejemplo, una clase podría llamarse Coche y podría tener atributos como color y marca, y métodos como __conducir__ o __frenar__.

Cada objeto de una clase puede tener sus propios valores para los atributos, pero comparte los métodos y la es­tru­c­tu­ra básica de co­m­po­r­ta­mie­n­to con otras in­s­ta­n­cias de la misma clase. Por ejemplo, se puede crear un objeto mi_coche de la clase Coche con el color __rojo__ y la marca __Toyota__ y la instancia heredará au­to­má­ti­ca­me­n­te los métodos __conducir__ o __frenar__ de la clase.

Cómo crear clases de Python

Puedes definir clases en Python es­cri­bie­n­do la palabra clave class seguida del nombre de la clase y dos puntos.

class MyClass:
    # Constructor method called when creating an object
    def __init__(self, attribute1, attribute2):
        self.attribute1 = attribute1
        self.attribute2 = attribute2
    
    # Method defined within the class
    def my_method(self):
        return f"Attribute 1: {self.attribute1}, Attribute 2: {self.attribute2}"
python

En este código Python, se ha creado una clase llamada MyClass que tiene un co­n­s­tru­c­tor __init__ al que se accede al crear un objeto y que ini­cia­li­za dos atributos, el attribute1 y el attribute2. El método my_method devuelve una cadena fo­r­ma­tea­da que contiene los valores de esos atributos.

Para crear un objeto basado en esta clase, debes utilizar el nombre de la clase seguido de pa­ré­n­te­sis:

object1 = MyClass("Value 1", "Value 2")
# Calling a method of the object
result = object1.my_method()
python
Web Hosting
El hosting que crece con tu proyecto
  • Tiempo de actividad de 99.99 % y seguridad ga­ra­n­ti­za­da
  • Aumenta el re­n­di­mie­n­to según el tráfico de tu página web
  • Incluye dominio, SSL, e-mail y soporte 24/7

Ejemplos de uso de las clases de Python

Las clases de Python pueden crear sistemas complejos y re­la­cio­nes entre distintas entidades. A co­n­ti­nua­ción, te enseñamos algunas formas de trabajar con ellas.

La función __str()__

La función __str__() en Python es un método especial que puedes definir dentro de las clases de Python. Cuando se im­ple­me­n­ta, devuelve una cadena con una re­pre­se­n­ta­ción sencilla de un objeto. Puedes aplicar la función str() di­re­c­ta­me­n­te al objeto o co­m­bi­nar­la con una in­s­tru­c­ción print().

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"
person1 = Person("Alice", 30)
print(person1) # Output: Name: Alice, Age: 30
python

En este código, el método __str__() dentro de la clase Person crea una cadena fo­r­ma­tea­da que contiene el nombre y la edad de una persona. Cuando se ejecuta print(person1), llama au­to­má­ti­ca­me­n­te al método __str__() del objeto person1 y da como resultado la cadena que este método ha devuelto.

Definir métodos en clases de Python

En Python también es posible es­ta­ble­cer métodos dentro de una clase para ejecutar ope­ra­cio­nes sobre los objetos de esta clase. Por lo tanto, los objetos creados pueden llamar a dichos métodos.

class Rectangle:
    def __init__(self, length, width):
        self.length = length
        self.width = width
    
    def area(self):
        return self.length * self.width
    def perimeter(self):
        return 2 * (self.length + self.width)
# Creating an object of the class
my_rectangle = Rectangle(5, 10)
# Calling methods of the object
area = my_rectangle.area()
perimeter = my_rectangle.perimeter()
# Printing the calculated values
print("Area =", area) # Output: Area = 50
print("Perimeter =", perimeter) # Output: Perimeter = 30
python

En el ejemplo anterior, se ha creado la clase Rectangle, que incluye los dos métodos area() y perimeter(). Estos métodos sirven para calcular el área y el perímetro de un re­c­tá­n­gu­lo basándose en los valores de longitud y anchura que se pasaron al ini­cia­li­zar el objeto. En Python, self en un método de clase re­pre­se­n­ta una re­fe­re­n­cia al objeto actual al que se aplica el método.

El objeto my_rectangle se crea con una longitud de 5 y una anchura de 10. Después, se ha llamado a los métodos area() y perimeter() sobre este objeto para calcular los valores re­s­pe­c­ti­vos.

Cambiar las pro­pie­da­des de objetos

Puedes utilizar el operador punto . para acceder a atributos es­pe­cí­fi­cos de un objeto y ac­tua­li­zar sus valores. Puedes asignar nuevos valores di­re­c­ta­me­n­te al atributo tal y como puedes ver a co­n­ti­nua­ción:

person1.name = "Sarah"
person1.age = 35
python

La palabra clave del sirve para eliminar pro­pie­da­des de un objeto. En el ejemplo que sigue, se está eli­mi­na­n­do la propiedad name del objeto person1:

del person1.name
python
Nota

Ten en cuenta que las variables de instancia son di­fe­re­n­tes de las variables de clase de Python (Python class variables). Las variables de clase se definen fuera del co­n­s­tru­c­tor y solo pueden mo­di­fi­car­se a través del nombre de la clase.

Ir al menú principal