class Puerta: """Una puerta que solo se abre si sabes la combinacion correcta""" def __init__(self, nombre_puerta, combinacion): self.nombre_puerta = nombre_puerta if(len(str(combinacion))==3 and isinstance(combinacion,int)): self.combinacion = combinacion self.estado = 0 #0 cerrado, 1 abierto print "La puerta %s se ha creado con pass %s" % (nombre_puerta, combinacion) else: raise Exception("La combinacion proporcionada no es valida para este tipo de puertas") def abrir(self, combinacion): if(self.estado == 0 and self.combinacion==combinacion): self.estado = 1 print "La puerta %s se ha abierto" % self.nombre_puerta elif self.estado == 0: print "Pass incorrecto para abrir %s" % self.nombre_puerta else: print "La puerta %s ya esta abierta, no la puedes volver a abrir" % self.nombre_puerta def cerrar(self): if(self.estado == 1): self.estado = 0 print "La puerta %s se ha cerrado" % self.nombre_puerta else: print "La puerta %s ya esta cerrada" % self.nombre_puerta def cambiar_combinacion(self, combinacionActual, combinacionNueva): if(self.combinacion == combinacionActual): self.combinacion = combinacionNueva print "Se ha cambiado exitosamente el pass de %s" % self.nombre_puerta else: print "No es posible cambiar la combinacion de %s, pass actual invalido" % self.nombre_puerta if __name__=="__main__": puerta = Puerta("Puerta 1",123) # Creo la puerta puerta.abrir(234) # La quiero abrir con un pass que no es puerta.abrir(123) # La quiero abrir con el pass correcto puerta.abrir(234) # La quiero abrir con un pass que no es pero ya estaba abierta puerta.abrir(123) # La quiero abrir con el pass que es pero ya esta abierta puerta.cerrar() # La quiero cerrar puerta.cerrar() # La quiero volver a cerrar puerta.cambiar_combinacion(123, 234) # Quiero cambiar la pass proporcionando un pass correcto puerta.cambiar_combinacion(123, 234) # Quiero cambiar la pass pero con un pass incorrecto try: puerta2 = Puerta("Puerta2",123456) # Intentamos crear una puerta con un int mas largo de 3 except Exception as err: print err.message try: puerta3 = Puerta("Puerta3", "abc") # Intentamos crear una puerta con un string except Exception as err: print err.message
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question