Advertisement
AntonioVillanueva

Herencia Python 9-8. Privilegios Python Crash Cours

Jan 24th, 2019
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.14 KB | None | 0 0
  1. #!/usr/bin/env pytho
  2. """
  3. Herencia
  4. 9-8. Privilegios: escribe una clase de privilegios separada.
  5. La clase debe tener un. atributo, privilegios, que almacena una lista de cadenas
  6. como la descrita en el Ejercicio 9-7. Mueva el método show_privileges () a esta clase.
  7. Haga una instancia de privilegios como un atributo en la clase Admin.
  8. Crea una nueva instancia de Admin y usa tu método para mostrar sus privilegios.
  9. """
  10.  
  11. #Clase madre
  12. class Privilegios ():
  13.    
  14.     def __init__(self,usuario):
  15.         print ("\nClase privilegios\n")
  16.         #lista de privilegios de un usuario
  17.         self.privilegios=["elimininar publicacion","prohibir usuario","copiar","borrar","renombrar"]
  18.         self.nombre=usuario
  19.    
  20.     def mostrar_privilegiosB(self):
  21.         count=0
  22.         print ("\nLista privilegios de "+self.nombre+'\n')
  23.         for privilegio in privilegios:
  24.             print (str (count) +'='+privilegio)
  25.             count+=1
  26.  
  27. class Usuario():
  28.    
  29.     def __init__ (self,nombre,apellido,edad,profesion,login,pwd):
  30.         self.nombre=nombre
  31.         self.apellido=apellido
  32.         self.edad=edad    
  33.         self.profesion=profesion
  34.         self.login=login
  35.         self.pwd=pwd
  36.         self.intentos_login=0
  37.        
  38.     def describe_usuario(self):
  39.         print ("\nNombre : " +self.nombre +
  40.                 " ,apellido : " +self.apellido +
  41.                 " ,prof : " +self.profesion +
  42.                 " ,edad : " +str (self.edad) )
  43.     def saludo_usuario(self):
  44.         print ("\nSaludos "+self.nombre+ ". !")
  45.        
  46.     def imprime_intentos_login(self):
  47.         """Imprime el numero de veces que se ha intentado el login"""
  48.         print ("\nIntentos login ="+str(self.intentos_login))
  49.        
  50.     def reset_intentos_login(self):
  51.         """Resetea la variable intentos_login"""
  52.         self.intentos_login =0
  53.    
  54.     def incrementa_intentos_login(self):
  55.         """incrementa los intentos login"""
  56.         self.intentos_login+=1
  57.                
  58.     def intento_login(self,login):
  59.         """Se efectua un intento de login"""
  60.         if (login!=self.login):
  61.             self.incrementa_intentos_login()
  62.             self.imprime_intentos_login()          
  63.         else:
  64.             print ("\n OK LOGIN !")
  65.             self.reset_intentos_login()
  66.             self.imprime_intentos_login()
  67.  
  68.  
  69. #lista de privilegios de un usuario
  70. privilegios=["elimininar publicacion","prohibir usuario","copiar","borrar","renombrar"]
  71.  
  72. class Administrador(Usuario):
  73.         def __init__(self,nombre,apellido,edad,profesion,login="root",pwd="root",):
  74.             super().__init__(nombre,apellido,edad,profesion,login,pwd)
  75.            
  76.             #Utiliza una instancia de la clase privilegios
  77.             print ("\nInstancia la clase privilegios\n")
  78.             self.privilegios=Privilegios(nombre)
  79.            
  80.         def mostrar_privilegios(self):
  81.             #Utiliza el metodo de la clase  privilegios, pero utiliza el self.nombre .... !!!
  82.             self.privilegios.mostrar_privilegiosB()
  83.        
  84.  
  85. #instancio un Administrador que es un usuario con privilegios , para ello uso la clase Administrador que hereda de Usuario
  86. admin=Administrador("icaro","villanueva",50,"electronico")
  87. admin.describe_usuario() #Utiliza el metodo heredado de Usuario
  88. admin.mostrar_privilegios()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement