Clases de Python y programación orientada a objetos

Una introducción completa a las clases, objetos, herencia y conceptos de programación orientada a objetos de Python. Cree modelos de datos sólidos y escale sus aplicaciones Python.

Pruébelo en el editor

Descripción general

La programación orientada a objetos (POO) es un poderoso paradigma de programación utilizado en gran medida en Python para estructurar aplicaciones grandes y complejas. A diferencia de la programación procedimental, que se centra en escribir funciones secuenciales, la programación orientada a objetos gira en torno al concepto de "objetos". Un objeto es una unidad autónoma que agrupa datos (conocidos como atributos) y comportamientos (conocidos como métodos).

Una "clase" en Python actúa como modelo o plantilla para crear objetos. Piense en una clase como un plano arquitectónico de una casa. El plano en sí no es una casa, pero define cómo será la casa y qué características tiene. Cuando creas una instancia de una clase, creas un "objeto" o "instancia" tangible construido a partir de ese modelo. Puedes crear cientos de instancias únicas a partir de una sola clase.

Un elemento central de las clases de Python es el método `__init__()`, a menudo denominado constructor. Este método especial se ejecuta automáticamente en el momento exacto en que se crea un nuevo objeto a partir de una clase. Es responsable de inicializar el estado predeterminado del objeto, asignándole atributos específicos. El parámetro "self" se pasa obligatoriamente a los métodos de instancia, actuando como referencia al objeto específico que se está manipulando.

Uno de los pilares más fuertes de la programación orientada a objetos es la herencia. La herencia le permite crear una nueva clase (una clase secundaria) que hereda todos los atributos y métodos de una clase existente (una clase principal). Esto promueve la reutilización masiva de código. Por ejemplo, podría tener una clase genérica `Vehicle` y luego crear clases secundarias `Car` y `Truck` que hereden de `Vehicle` pero agreguen sus propios comportamientos específicos.

Otro concepto central es la encapsulación, la idea de ocultar el estado interno de un objeto y exigir que toda interacción se produzca a través de métodos designados. Si bien Python no tiene modificadores de acceso estrictos como "privado" o "protegido", se basa en convenciones de nomenclatura (como anteponer a una variable un guión bajo "_") para indicar que un atributo no debe manipularse directamente desde fuera de la clase.

Código y salida de ejecución

Definir una representación estricta de una instancia de objeto Car y utilizar métodos de clase para mutar los datos de la instancia local.

class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model
        self.is_running = False

    def start(self):
        self.is_running = True
        return f"{self.make} {self.model} has started."

my_car = Car("Toyota", "Corolla")
print(my_car.make)
print(my_car.start())
Salida terminal
Toyota
Toyota Corolla has started.

Implementación paso a paso

  • Modelado de entidades del mundo real (Usuarios, Productos, Carros)
  • Creación de motores de juegos y sistemas de componentes de entidades.
  • Creación de componentes de interfaz gráfica de usuario reutilizables

Preguntas frecuentes

¿Qué significa "yo"?

"self" representa la instancia de la clase. Al usar la palabra clave "self" podemos acceder a los atributos y métodos de la clase en Python.

¿Python admite herencia múltiple?

Sí, Python permite que una clase herede de varias clases principales.

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.