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)