Advertisement
AntonioVillanueva

9-7. Admin .Clases & Herencia Python Crash Cours

Jan 23rd, 2019
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.77 KB | None | 0 0
  1. #!/usr/bin/env pytho
  2. """
  3. Herencia
  4. 9-7. Admin: Un administrador es un tipo especial de Usuario. Escribe una clase llamada
  5. Administrador que hereda de la clase de usuario que escribió en el ejercicio 9-3 (página 166)
  6. Agrege un atributo, privilegios, que almacena una lista de cadenas
  7.  como "puede agregar publicación", "puede eliminar publicación", "puede prohibir al usuario", etc.
  8. Escriba un método llamado mostrar_privilegios () que enumera el conjunto de
  9. privilegios Crea una instancia de Admin y llame dicho método.
  10. """
  11.  
  12. #Clase madre
  13. class Usuario():
  14.    
  15.     def __init__ (self,nombre,apellido,edad,profesion,login,pwd):
  16.         self.nombre=nombre
  17.         self.apellido=apellido
  18.         self.edad=edad    
  19.         self.profesion=profesion
  20.         self.login=login
  21.         self.pwd=pwd
  22.         self.intentos_login=0
  23.        
  24.     def describe_usuario(self):
  25.         print ("\nNombre : " +self.nombre +
  26.                 " ,apellido : " +self.apellido +
  27.                 " ,prof : " +self.profesion +
  28.                 " ,edad : " +str (self.edad) )
  29.     def saludo_usuario(self):
  30.         print ("\nSaludos "+self.nombre+ ". !")
  31.        
  32.     def imprime_intentos_login(self):
  33.         """Imprime el numero de veces que se ha intentado el login"""
  34.         print ("\nIntentos login ="+str(self.intentos_login))
  35.        
  36.     def reset_intentos_login(self):
  37.         """Resetea la variable intentos_login"""
  38.         self.intentos_login =0
  39.    
  40.     def incrementa_intentos_login(self):
  41.         """incrementa los intentos login"""
  42.         self.intentos_login+=1
  43.                
  44.     def intento_login(self,login):
  45.         """Se efectua un intento de login"""
  46.         if (login!=self.login):
  47.             self.incrementa_intentos_login()
  48.             self.imprime_intentos_login()          
  49.         else:
  50.             print ("\n OK LOGIN !")
  51.             self.reset_intentos_login()
  52.             self.imprime_intentos_login()
  53.  
  54.  
  55. #lista de privilegios de un usuario
  56. privilegios=["elimininar publicacion","prohibir usuario","copiar","borrar","renombrar"]
  57.  
  58. class Administrador(Usuario):
  59.         def __init__(self,nombre,apellido,edad,profesion,privilegios,login="root",pwd="root",):
  60.             super().__init__(nombre,apellido,edad,profesion,login,pwd)
  61.             self.privilegios=privilegios
  62.        
  63.         def mostrar_privilegios(self):
  64.             count=0
  65.             print ("\nLista privilegios de "+self.nombre)
  66.             for privilegio in self.privilegios:
  67.                 print (str (count) +'='+privilegio)
  68.                 count+=1
  69.  
  70. #instancio un Administrador que es un usuario con privilegios , para ello uso la clase Administrador que hereda de Usuario
  71. admin=Administrador("icaro","villanueva",50,"electronico",privilegios)
  72. admin.describe_usuario() #Utiliza el metodo heredado de Usuario
  73. admin.mostrar_privilegios() #Utiliza el self.nombre
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement