首页 > 其他 > 详细

3/23

时间:2020-03-23 22:46:39      阅读:85      评论:0      收藏:0      [点我收藏+]

一:编写函数,(函数执行的时间用time.sleep(n)模拟)

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
?
@outter
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
?
@outter
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
?
@outter
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
?
?
@outter
def fuc1(name):
    time.sleep(2)
    print(‘%s大帅B,你好‘ % name)
?
?
fuc1(‘egon‘)

3/23

原文:https://www.cnblogs.com/bailongcaptain/p/12555576.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!