La programación orientada a objetos (POO) es un paradigma de la programación que se basa en organizar el software en objetos, los cuales son instancias de clases. Las clases actúan como plantillas genéricas que definen atributos y comportamientos. Por ejemplo, una clase “Persona” puede tener atributos como nombre, apellido y fecha de nacimiento.
¿Cómo se crean clases y objetos en Python?
Para crear una clase en Python, se utiliza la palabra reservada class seguida del nombre de la clase con la primera letra en mayúscula. Dentro de la clase, se define un constructor con la función __init__. Esta función inicializa los atributos del objeto.
Ejemplo de creación de una clase y objeto
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def saludar(self):
print(f"Hola, mi nombre es {self.nombre} y tengo {self.edad} años")
persona1 = Persona("Ana", 30)
persona2 = Persona("Luis", 25)
persona1.saludar()
persona2.saludar()
¿Qué son los métodos en una clase?
Los métodos son funciones definidas dentro de una clase que operan sobre los objetos de la misma. En el ejemplo anterior, saludar es un método de la clase Persona.
¿Cómo manejar una cuenta bancaria con POO?
Un ejemplo práctico de POO es la gestión de una cuenta bancaria. Creamos una clase BankAccount con métodos para depositar y retirar dinero, así como para activar y desactivar la cuenta.
Ejemplo de clase BankAccount
class BankAccount:
def __init__(self, account_holder, balance):
self.account_holder = account_holder
self.balance = balance
self.is_active = True
def deposit(self, amount):
if self.is_active:
self.balance += amount
print(f"Se ha depositado {amount}. Saldo actual: {self.balance}")
else:
print("No se puede depositar, cuenta inactiva")
def withdraw(self, amount):
if self.is_active:
if amount <= self.balance:
self.balance -= amount
print(f"Se ha retirado {amount}. Saldo actual: {self.balance}")
else:
print("Fondos insuficientes")
else:
print("No se puede retirar, cuenta inactiva")
def deactivate(self):
self.is_active = False
print("La cuenta ha sido desactivada")
def activate(self):
self.is_active = True
print("La cuenta ha sido activada")
cuenta1 = BankAccount("Ana", 500)
cuenta2 = BankAccount("Luis", 1000)
cuenta1.deposit(500)
cuenta2.withdraw(100)
cuenta1.deactivate()
cuenta1.deposit(200)
cuenta1.activate()
cuenta1.deposit(200)
¿Cómo se crean y manejan objetos en Python?
La creación de objetos sigue una sintaxis similar a la de la creación de variables, pero usando el nombre de la clase seguido de los parámetros necesarios para el constructor.
Ejemplo de uso de la clase BankAccount
cuenta1 = BankAccount("Ana", 500)
cuenta2 = BankAccount("Luis", 1000)
cuenta1.deposit(500)
cuenta2.withdraw(100)
cuenta1.deactivate()
cuenta1.deposit(200)
cuenta1.activate()
cuenta1.deposit(200)