import time
def fuc1(name):
time.sleep(2)
print('%s大帅B,你好'%name)
fuc1('egon')
二:编写装饰器,为函数加上统计时间的功能
import time
def outter(func):
def wrapper(*args,**kwargs):
start=time.time()
res = func(*args,**kwargs)
end=time.time()
print(end-start)
return wrapper
def fuc1(name):
time.sleep(2)
print('%s大帅B,你好'%name)
fuc1('egon')
三:编写装饰器,为函数加上认证的功能
import time
def outter(func):
def wrapper(*args,**kwargs):
name=input('输入你的账号: ')
pwd=input('输入你的密码: ')
if name=='egon' and pwd == '123':
res = func(*args,**kwargs)
return res
else:
print('账号或密码错误!')
return wrapper
def fuc1(name):
time.sleep(2)
print('%s大帅B,你好'%name)
fuc1('egon')
四:编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码
import time
login = {"user_name":None}
def outter(func):
def wrapper(*args,**kwargs):
if login["user_name"] !=None:
res = func(*args, **kwargs)
return res
else:
user_name=input('请输入你的账号: ')
pass_word=input('请输入你的密码: ')
with open('pwd.txt','r',encoding='utf-8')as file1:
for line in file1:
name,pwd=line.strip().split(':')
if user_name==name and pass_word==pwd:
print('登录成功!')
login[user_name]=pass_word
res = func(*args, **kwargs)
return res
else:
print('登录失败!')
return wrapper
def fuc1(name):
time.sleep(2)
print('%s大帅B,你好'%name)
fuc1('egon')
五:编写装饰器,为多个函数加上认证功能,要求登录成功一次,在超时时间内无需重复登录,超过了超时时间,则必须重新登录
import time
login = {"user_name": None, 'start_time': 0}
def outter(func):
def wrapper(*args, **kwargs):
end = time.time()
if login["user_name"] != None and end - login['start_time'] < 5:
res = func(*args, **kwargs)
return res
else:
user_name = input('请输入你的账号: ')
pass_word = input('请输入你的密码: ')
with open('pwd.txt', 'r', encoding='utf-8')as file1:
for line in file1:
name, pwd = line.strip().split(':')
if user_name == name and pass_word == pwd:
print('登录成功!')
login[user_name] = pass_word
res = func(*args, **kwargs)
return res
else:
print('登录失败!')
return wrapper
def fuc1(name):
time.sleep(2)
print('%s大帅B,你好' % name)
fuc1('egon')