CORE Code School
Clases en Python
Clases en Python
🧱 Creando una clase
pythondatabootcamp

Clases en Python

13 minutos

En Python, una clase es una plantilla que define cómo se creará un objeto. Los objetos son instancias de una clase. Las clases son una de las características más poderosas de Python y son fundamentales para la programación orientada a objetos (POO).

🧱 Creando una clase

Para crear una clase en Python, se utiliza la palabra clave class. La sintaxis básica es la siguiente:

python
class MiClase:
    pass
Copiar

En este caso, la clase se llama MiClase y no tiene ninguna definición. La palabra clave pass simplemente indica que no hay nada que hacer en la clase.

🛠️ Creando un objeto

Una vez que se ha creado una clase, se puede utilizar para crear objetos. Para crear un objeto, se utiliza la sintaxis nombre_de_la_clase(). Por ejemplo:

python
class MiClase:
    pass

objeto = MiClase()
Copiar

En este caso, se ha creado un objeto de la clase MiClase y se ha almacenado en la variable objeto.

🔑 Atributos de clase y de objeto

Los objetos y las clases pueden tener atributos. Un atributo es una variable asociada a una clase u objeto. Los atributos pueden ser variables simples (como números o cadenas) o pueden ser objetos más complejos (como otras clases).

Atributos de clase

Los atributos de clase son variables asociadas a la clase en sí misma, no a un objeto en particular. Los atributos de clase se definen fuera de cualquier método en la clase y se acceden utilizando el nombre de la clase.

python
class MiClase:
    atributo_de_clase = 42
Copiar

En este caso, la clase MiClase tiene un atributo de clase llamado atributo_de_clase con un valor de 42. Para acceder al atributo de clase, se utiliza el nombre de la clase.

python
print(MiClase.atributo_de_clase)
Copiar

Atributos de objeto

Los atributos de objeto son variables asociadas a un objeto en particular. Los atributos de objeto se definen dentro del método init de la clase.

python
class MiClase:
    def __init__(self):
        self.atributo_de_objeto = 10
Copiar

En este caso, la clase MiClase tiene un método init que define un atributo de objeto llamado atributo_de_objeto con un valor de 10. Podemos acceder al atributo de objeto.

python
objeto = MiClase()
print(objeto.atributo_de_objeto)
Copiar

🎮 Métodos de clase y de objeto

Los métodos son funciones asociadas a una clase u objeto. Los métodos pueden ser utilizados para realizar operaciones con los atributos de la clase u objeto.

Métodos de clase

Los métodos de clase son funciones asociadas a la clase en sí misma, no a un objeto en particular. Los métodos de clase se definen utilizando el decorador @classmethod. El primer argumento del método de clase es la propia clase (usualmente llamada cls).

python
class MiClase:
    atributo_de_clase = "valor"
    @classmethod
    def metodo_de_clase(cls, argumento):
        print("El argumento es:", argumento)
        print("La clase es:", cls)

Copiar

En este caso, se ha definido un método de clase llamado metodo_de_clase. El primer argumento (cls) es la propia clase. Este método simplemente imprime el argumento y la clase.

Métodos de objeto

Los métodos de objeto son funciones asociadas a un objeto en particular. Los métodos de objeto se definen dentro del método init de la clase (o en cualquier otro método de la clase). El primer argumento del método de objeto es el propio objeto (usualmente llamado self).

python
class MiClase:
    def __init__(self):
        self.atributo_de_objeto = 10
    
    def metodo_de_objeto(self, argumento):
        print("El argumento es:", argumento)
        print("El objeto es:", self)
Copiar

En este caso, se ha definido un método de objeto llamado metodo_de_objeto. El primer argumento (self) es el propio objeto. Este método simplemente imprime el argumento y el objeto.

Para llamar a un método de objeto, se utiliza el nombre del objeto:

python
objeto = MiClase()
objeto.metodo_de_objeto("Hola")
Copiar

🏰 Herencia

La herencia es un concepto fundamental de la POO. Permite definir una nueva clase basada en una clase existente. La nueva clase (llamada subclase o clase hija) hereda los atributos y métodos de la clase existente (llamada superclase o clase padre).

Para definir una clase que hereda de otra clase, se utiliza la sintaxis class NuevaClase(SuperClase).

python
class SuperClase:
    def metodo_de_superclase(self):
        print("Este es un método de la superclase")

class SubClase(SuperClase):
    def metodo_de_subclase(self):
        print("Este es un método de la subclase")
Copiar

En este caso, se ha definido una superclase (SuperClase) con un método (metodo_de_superclase) y una subclase (SubClase) con otro método (metodo_de_subclase). La subclase hereda el método de la superclase.

Para llamar a un método de la superclase desde la subclase, se utiliza la función super().

python
class SubClase(SuperClase):
    def metodo_de_subclase(self):
        super().metodo_de_superclase()
        print("Este es un método de la subclase")
Copiar

En este caso, el método metodo_de_subclase llama al método metodo_de_superclase de la superclase utilizando super().

En esta página
🧱 Creando una clase🛠️ Creando un objeto🔑 Atributos de clase y de objeto🎮 Métodos de clase y de objeto🏰 Herencia
Actualizado 22 abr 2023
¿Quieres más?
pythondatabootcamp

Fórmate como desarrollador@