Laboral Marzo 23 de

A: preparación de función (la función de tiempo realizada por time.sleep (n) analógico)

Dos: escribir un decorador, como una función del tiempo, junto con funciones estadísticas

importación tiempo
 def Timmer (func):
     def envoltura (* args, ** kwargs): 
        iniciar = time.time () 
        res = func (* args, ** kwargs) 
        parada = time.time ()
         print (parada - inicio)
         retorno res

 

Tres: escribir un decorador, en función del plus de función certificados

Cuatro: escribir un decorador para múltiples funciones además de la función de certificación (de archivo de contraseña de la cuenta del usuario) requieren un inicio de sesión se realiza correctamente, las funciones de seguimiento son más largos sin necesidad de introducir un nombre de usuario y contraseña
Nota: leer una cadena de un archivo el diccionario puede ser de evaluación utilizado ( '{ 'name': 'Egon', 'contraseña': '123'}') convertir en un formato de diccionario

Cinco: escribir un decorador para varias funciones, además de la autenticación, requiere de una conexión exitosa, sin tener que repetir el inicio de sesión dentro del período de tiempo de espera, superando el tiempo de espera, debe conectarse de nuevo

importación tiempo 
login_user = Ninguno 
login_time = Ninguno 

def check_session (func): 
    time_out = 4
     def envoltura (* args, ** kwargs):
         mundial login_user, login_time 
        res = func (* args, ** kwargs) 
        final = time.time ()
         Si extremo - login_time> time_out: 
            login_user = Ninguno
             de impresión ( ' 登陆超时' ) 
            login_time = Ninguno
        retorno res
     vuelven envoltorio 



def check_login (func):
     def envoltorio (* args, ** kwargs):
         mundial login_user, login_time
         si login_user: 
            func ( * args, ** kwargs)
         otra cosa : 
            ipt_account = input ( ' 输入账号: ' ). tira () 
            ipt_pwd = input ( ' 输入密码: ' ) .strip () 
            con (abierta ' db.txt ' , modo = ' rt ' , encoding =' UTF-8. ' ) AS F:
                 para I en F:
                     SI [ipt_account, ipt_pwd] == i.strip ( ' \ n- ' ) .split ( ' : ' ): 
                        login_user = ipt_account
                         Imprimir ( ' inicio de sesión satisfactorio, ahora uso de la función ' ) 
                        login_time = time.time ()
                         ROMPER 
                la persona :
                     Imprimir ( ' nombre de la cuenta o la contraseña es incorrecta, no se puede utilizar la función ' )

    volver envoltorio 


@check_session 
@check_login 
def func1 (CMD):
     print ( ' func1 ' , cmd) 



@check_session 
@check_login 
def func2 (CMD):
     print ( ' func2 ' cmd) 


Menú = {
     ' 1 ' : [ ' func1 ' , func1],
     ' 2 ' : [ ' func2 ' , func2],
     ' 3 ' : [ ' salida ', Salida] 
} 

mientras Verdadero:
     para i en menú:
         impresión (i, menú [i] [0]) 

    cmd = input ( ' cmd: ' ) .strip () 
    menú [cmd] [ 1] (CMD)

 

Supongo que te gusta

Origin www.cnblogs.com/jingpeng/p/12555482.html
Recomendado
Clasificación