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
classPersona:def__init__(self, nombre, edad): self.nombre = nombre
self.edad = edad
defsaludar(self):print(f"Hola, mi nombre es {self.nombre} y tengo {self.edad} años")# Crear objetos de la clase Personapersona1 = 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
classBankAccount:def__init__(self, account_holder, balance): self.account_holder = account_holder
self.balance = balance
self.is_active =Truedefdeposit(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")defwithdraw(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")defdeactivate(self): self.is_active =Falseprint("La cuenta ha sido desactivada")defactivate(self): self.is_active =Trueprint("La cuenta ha sido activada")# Crear objetos de la clase BankAccountcuenta1 = 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
# Creación de cuentascuenta1 = BankAccount("Ana",500)cuenta2 = BankAccount("Luis",1000)# Realización de operacionescuenta1.deposit(500)cuenta2.withdraw(100)cuenta1.deactivate()cuenta1.deposit(200)# No se puede depositar, cuenta inactivacuenta1.activate()cuenta1.deposit(200)# Depósito exitoso