class Cliente: # una clase para los clientes
def __init__(self, dni, nombre, apellidos):
self.dni = dni
self.nombre = nombre
self.apellidos = apellidos
def __str__(self):
return f'{self.nombre} {self.apellidos} con DNI {self.dni}.'
class Empresa: # otra clase para las empresas
def __init__(self, clientes=[]):
self.clientes = clientes
def get_cliente(self, dni = None):
for c in self.clientes:
if c.dni == dni:
print("El cliente es:", c) # si no existiera __str__ no funcionaría poner c, sería: c.nombre, c.apellidos
return
print('Cliente no encontrado.')
def del_cliente(self, dni = None):
for i,c in enumerate(self.clientes):
if c.dni == dni:
del(self.clientes[i])
print(f'{c} → BORRADO') # sin __str__ se tendría que poner: {c.nombre} {c.apellidos}
return
print('Cliente no encontrado.')
jose = Cliente(nombre="Jose Luis", apellidos="Ruiz", dni="123A") # creamos un cliente
rober = Cliente("444B", "Roberto", "López") # creamos otro cliente
empresa =Empresa(clientes=[jose, rober]) # creamos una empresa con los clientes
empresa.clientes # listado de clientes, vemos solo los objetos con la dirección de memoria
[<__main__.Cliente at 0x7d2e853fe440>, <__main__.Cliente at 0x7d2e853ff400>]
empresa.get_cliente("123A") # consultamos un cliente por dni
El cliente es: Jose Luis Ruiz con DNI 123A.
empresa.del_cliente("123A") # borro un cliente por dni
empresa.clientes # muestro de nuevo todos los clientes
Jose Luis Ruiz con DNI 123A. → BORRADO
[<__main__.Cliente at 0x7d2e853ff400>]
empresa.del_cliente("123Z") # borro un cliente con dni inexistente
Cliente no encontrado.