POO en Python
POO en Python
POO en Python
Introducción a la
POO en Python
Raúl José Palma Mendoza
Fuente: Goodrich, M., Tamassia, R., & Goldwasser, M (2013). Data structures and algorithms in
Python
Clases y Objetos
Ejemplos:
Clase Objetos
class CreditCard:
"""Una tarjeta de credito"""
def get_customer(self):
return self._customer
def get_bank(self):
return self._bank
def get_account(self):
return self._account
def get_limit(self):
return self._limit
def get_balance(self):
return self._balance
Ejemplo de Clase: CreditCard
wallet = []
wallet.append(CreditCard('John Bowman', 'California Savings',
'5391 0375 9387 5309', 2500) )
wallet.append(CreditCard('John Bowman', 'California Federal',
'3485 0399 3395 1954', 3500) )
wallet.append(CreditCard('John Bowman', 'California Finance',
'5391 0375 9387 5309', 5000) )
for c in range(3):
print('Customer =', wallet[c].get_customer())
print('Bank =', wallet[c].get_bank())
print('Account =', wallet[c].get_account())
print('Limit =', wallet[c].get_limit())
print('Balance =', wallet[c].get_balance())
while wallet[c].get_balance() > 100:
wallet[c].make_payment(100)
print('New balance =', wallet[c].get_balance())
print()
Herencia
import CreditCard
class AbusiveCreditCard(CreditCard):
"""Una tarjeta de crédito abusiva."""
def __init__(self, customer, bank, acnt, limit, apr):
"""El balance inicial es cero.
customer nombre del cliente (ej.:, 'John Bowman')
bank nombre del banco (ej.:, 'California Savings')
acnt número de la tarjeta (ej.:, '5391 0375 9387 5309')
limit límite de crédito
apr tasa de porcentaje anual (ej.:, 0.0825 for 8.25% APR)
"""
super().__init__(customer, bank, acnt, limit)
self._apr = apr
Ejemplo Herencia: AbusiveCreditCard
def process_month(self):
if self._balance > 0:
monthly_factor = pow(1 + self._apr, 1/12)
self._balance *= monthly_factor