Fundamentos de POO en Python: Clases, Objetos, Herencia y Constructores Explicados
Programación Orientada a Objetos (POO) en Python
El modelo de POO de Python permite a los desarrolladores modelar entidades del mundo real como objetos definidos por clases. El lenguaje prioriza la reutilización de código y modularidad, facilitando la creación y extensión de clases.
¿Qué es una Clase?
Una clase es un contenedor lógico que agrupa datos (atributos) y comportamiento (métodos). Define una plantilla para objetos que comparten propiedades comunes.
Ejemplo: Una clase Cliente podría exponer atributos como transacciones, balance y deuda, junto con métodos para depositar() o retirar().
Definir una Clase en Python
Siga estos pasos para crear una clase simple:
- Use la palabra clave
class:class MiClase: pass - Defina métodos dentro de la clase. El primer parámetro de cada método de instancia es
self, que se refiere al objeto mismo.class MiClase: def saludar(self): print("Hola desde MiClase") - Instancie la clase:
obj = MiClase()
- Llame a sus métodos:
obj.saludar()
Ejemplo completo:
# Ejemplo funcional de una clase en Python
class MiClase:
def metodo1(self):
print("Guru99")
def metodo2(self, texto):
print("Pruebas de Software: " + texto)
def main():
c = MiClase()
c.metodo1()
c.metodo2(" Las pruebas son divertidas")
if __name__ == "__main__":
main()
Herencia en Python
La herencia permite a una clase derivada reutilizar y extender el comportamiento de una clase base. Python soporta tanto herencia simple como múltiple.
class Base:
def saludar(self):
print("Hola desde Base")
class Derivada(Base):
def saludar(self):
super().saludar()
print("Hola desde Derivada")
# Uso
obj = Derivada()
obj.saludar()
Puntos clave:
- Las clases derivadas heredan atributos y métodos automáticamente.
- Sobrescriba métodos definiendo un método con el mismo nombre en la subclase.
- Llame a un método padre explícitamente con
ClasePadre.metodo(self, …)osuper().metodo().
Constructores: __init__
El método __init__ inicializa nuevos objetos con valores predefinidos.
class Usuario:
def __init__(self, nombre):
self.nombre = nombre
def decir_hola(self):
print(f"Bienvenido a Guru99, {self.nombre}")
usuario = Usuario("Alex")
usuario.decir_hola()
Salida: Bienvenido a Guru99, Alex
Python 2 vs Python 3
Solo existen diferencias menores de sintaxis. El ejemplo anterior funciona en ambas versiones con las sentencias print apropiadas.
Conclusiones Clave
- Las clases agrupan datos y comportamiento, definidas con la palabra clave
class. - Los métodos de instancia usan
selfpara referirse al objeto. - La herencia promueve la reutilización de código y puede ser simple o múltiple.
- Los constructores (
__init__) establecen el estado inicial para nuevos objetos. - La sintaxis flexible de Python y el manejo en tiempo de ejecución de
selfhacen la POO intuitiva.
python
- Construya un robot con Raspberry Pi y Python: Guía completa
- Clases y objetos en C#: Fundamentos para POO robusta
- Struct vs Class en C++: Diferencias Clave, Sintaxis y Mejores Casos de Uso
- Dominando la Programación Orientada a Objetos en Python: Clases, Herencia, Encapsulación y Polimorfismo
- Dominando la Herencia en Python: Conceptos, Sintaxis y Ejemplos Prácticos
- Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
- Counter de collections en Python: conteo eficiente, actualización y operaciones aritméticas
- Entendiendo type() e isinstance() en Python: ejemplos prácticos
- Python list.index(): Cómo Encontrar Posiciones de Elementos con Ejemplos Prácticos
- Programación Orientada a Objetos en Python: Guía Completa y Práctica
- Domina Java: Entendiendo Objetos, Clases y Conceptos Básicos de POO