Conceptos Básicos de Python: Programación Orientada a Objetos (OOP)
Python Básico: Programación Orientada a Objetos (POO)
Lesson 1 of 7 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Introducción a la Programación Orientada a Objetos en Python
La Programación Orientada a Objetos (OOP) es un paradigma de programación que te permite representar conceptos del mundo real en términos de objetos: cosas que tienen características específicas (datos) y comportamientos (acciones).
Piensa en un objeto como una entidad autónoma en tu programa que agrupa datos y acciones en un solo lugar—como un smartphone que posees: tiene datos (marca, modelo, nivel de batería) y puede realizar acciones (tomar una foto, hacer una llamada, reproducir música). En el código, esos datos se almacenan en atributos (por ejemplo, battery_level), y las acciones son métodos (por ejemplo, take_photo()); juntos forman una unidad coherente que puedes crear, configurar y usar.
La clase es el plano (el diseño del teléfono), y un objeto es una instancia real e individual construida a partir de ese plano (tu teléfono específico con su batería y fotos actuales). Cada objeto mantiene su propio estado, por lo que dos objetos de la misma clase pueden tener valores diferentes al mismo tiempo, y se comunican llamando los métodos de cada uno en lugar de manipular directamente los detalles internos—esta idea se llama encapsulación, y te ayuda a organizar el código, reducir errores y razonar sobre el comportamiento.
Cuando creas un objeto, Python normalmente ejecuta init para establecer su estado inicial; después, le pides al objeto que haga cosas llamando a sus métodos, que pueden leer o actualizar sus atributos según sea necesario. Si has creado un juego, imagina un Jugador con salud y posición que puede moverse() y saltar(); en una app web, un Usuario con nombre y password_hash que puede autenticar() y actualizar_perfil().
Eso es todo lo que es un objeto: datos + comportamiento, viviendo juntos, creados a partir de una clase y listos para funcionar para ti.
En Python, todo es un objeto. Esto significa que el código se escribe alrededor de los objetos y sus interacciones, haciendo que la OOP sea una parte fundamental de Python y una característica principal en librerías y frameworks populares como Django, Flask e incluso muchos motores de juego.
En esta lección, exploraremos los conceptos básicos de OOP en Python y aprenderemos a usarlos para crear nuestros propios objetos.
Clases y Objetos
La OOP en Python se basa en clases y objetos:
- Una clase es un plano o definición para un tipo de objeto. Describe qué propiedades (llamadas atributos) y qué comportamientos (llamados métodos) tendrá ese tipo de objeto.
- Un objeto es una instancia de una clase—es como una versión real del plano, con datos reales almacenados en sus atributos.
1.1. Creando una Clase
Para crear una clase en Python, usa la palabra clave class, seguida del nombre de la clase y dos puntos.
Ejemplo:
class Person:
pass
Aquí hemos creado una clase llamada Person.
La sentencia pass es un marcador de posición—indica a Python “no hacer nada aquí” hasta que agreguemos código real más adelante.
CONSEJO: Por convención, los nombres de clases usan PascalCase (cada palabra empieza con letra mayúscula).
Atributos y Métodos
Una clase puede tener:
- Atributos — variables que contienen información sobre el objeto.
- Métodos — funciones que definen acciones que el objeto puede realizar.
2.1. Añadiendo Atributos
Para configurar atributos al crear un objeto, los definimos dentro de un método especial llamado __init__ (se pronuncia “dunder init”—abreviatura de double underscore init).
__init__ se ejecuta automáticamente cada vez que creas un nuevo objeto a partir de la clase.
Sirve para inicializar los atributos del objeto con valores iniciales.
Ejemplo:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
Lo que sucede aquí:
- El primer parámetro,
self, es una referencia al objeto específico que se está creando. - Los otros parámetros (
name,age) son valores que se pasan al crear el objeto. self.nameyself.ageson atributos de instancia que almacenan los datos dentro del objeto.
IMPORTANTE: self debe ser siempre el primer parámetro en los métodos de instancia—esto te permite acceder a los atributos y métodos propios del objeto.
2.2. Añadiendo Métodos
Los métodos son funciones que pertenecen a una clase. Generalmente realizan acciones que usan o modifican los atributos del objeto.
Ejemplo:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hola, mi nombre es {self.name} y tengo {self.age} años.")
Aquí:
- Hemos añadido un método llamado
greet. - Usa los atributos del objeto (
self.nameyself.age) para mostrar un mensaje personalizado.
Creando y Usando Objetos
Una vez que defines una clase, puedes crear objetos a partir de ella tal como llamarías a una función—pero usando el nombre de la clase.
Ejemplo:
person1 = Person("Alice", 30)
person1.greet()
Salida:
Hola, mi nombre es Alice y tengo 30 años.
Resumen
En esta lección aprendiste:
- La diferencia entre clases y objetos.
- Cómo usar
__init__para configurar atributos al crear objetos. - Cómo definir métodos que permiten a los objetos realizar acciones.
Esta es la base de la OOP en Python. A continuación, ampliaremos esto explorando la herencia—una forma de crear nuevas clases que se basan en otras ya existentes.