Python - POO necesito que cuando se envie el paquete una vez , luego no permita volver a realizar el envió

 
Vista:

POO necesito que cuando se envie el paquete una vez , luego no permita volver a realizar el envió

Publicado por ivan (26 intervenciones) el 02/07/2023 23:50:13
Para esta parte deberás definir la clase PaqueteMejorado, la cual hereda de Paquete y tiene los siguientes cambios:

Un PaqueteMejorado no se deberá enviar si su emisor y su receptor son la misma persona.( Esto ya lo solucione creo )
Además, una misma instancia de PaqueteMejorado solo se podrá enviar una vez; si se intenta enviar una segunda vez, entonces NO se deberá realizar el segundo envio.

NOTA: No es necesario que redefinas la clase Paquete, puedes suponer que ya está definida (de manera equivalente a como Envio ya estaba definida para ambas preguntas anteriores)



class Envio:
def __init__(self, emisor:str, receptor:str):
self.emisor = emisor
self.receptor = receptor

def enviar(self):

return 'Este paquete de ' + self.emisor + ' debe ser enviado a ' + self.receptor


class Paquete(Envio):
def __init__(self, emisor:str, receptor:str, max_volumen:float):
super().__init__(emisor, receptor)
self.max_volumen = max_volumen
self.paquete_abierto= True


def agregar_producto(self, peso:float, volumen:float):

self.peso=peso
self.volumen= volumen
self.paquete_abierto= False
if self.paquete_abierto is True :
return 'Poder agregar producto/s'
else:
return 'Abrir el paquete para poder agregar producto/s '

def cerrar(self):
if self.volumen <= self.max_volumen:
return 'El volumen es adecuado , podes cerrar el paquete y llevarlo a zona de pesaje '
else:
return 'El volumen del producto no permite cerrar el paquete . '


def enviar(self):
if self.peso <= 30 and self.volumen <= self.max_volumen:
return 'El producto tiene peso adecuado menor de 30 y volumen adecuado . Podes enviar el paquete'
elif self.peso > 30 and self.volumen <= self.max_volumen:
return 'El volumen es adecuado , pero no el peso. No podes enviar el paquete'

else:

return 'Este producto excede el peso maximo de 30 y el volumen maximo . No podes enviar el paquete. Corregir volumen y peso '
class PaqueteMejorado(Paquete):

def check_persona(self):
super().__init__(emisor,receptor,max_vol)

if emisor == receptor:
return 'El emisor y receptor son la misma persona . Revisar datos . No enviar '


if emisor != receptor :

return 'Los datos de emisor y receptor estan chequeados y son correctos. Podes enviar.'




enviando_mi_paquete=Envio('Juan','Jose')
print(enviando_mi_paquete.enviar())
emisor='Juan'
receptor='Jose'
max_vol= 100

enviando_mi_paquete=Paquete(emisor,receptor,max_vol)
print(enviando_mi_paquete.agregar_producto(30 ,100))
print(enviando_mi_paquete.cerrar())
print(enviando_mi_paquete.enviar())
emisor='Marcelo'
receptor='Jose'
max_vol=100
enviando_mi_paquete=PaqueteMejorado(emisor, receptor,max_vol)
print(enviando_mi_paquete.check_persona())
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder