zoukankan      html  css  js  c++  java
  • 装饰器 未整理

    import time
    def cal_time(func):  #计算时间的装饰器
        def wrapper(*args,**kwargs):
            t1 = time.time()
            res = func(*args,**kwargs)
            t2 = time.time()
            print('函数%s运行时间:%s'%(func.__name__,t2 - t1))
            return res
    
        return wrapper
    

    def home():
    print('-------欢迎登录-------')
    def america():
    print('-------美国专区-------')
    user_status = False

    def login(s):
    def outer(func):
    def inner(*arg):
    global user_status
    if user_status == False:
    name = input('用户名..')
    pwd = input('密码')
    if name == '111' and pwd == '111':
    user_status = True
    else:
    print('账号密码不对')
    else:
    print('用户已登录,认证通过')
    if user_status == True:
    func(*arg)
    return inner
    return outer

    login(1)
    # @login('qq')
    # def henan(style):
    # print('-------河南专区-------',style)
    # henan('3p')
    # xx = login('qq') #xx = 返回outer地址
    # henan = xx(henan) # 左边henan = outer(henan),此时左边henan = inner(*arg)执行henan(*arg)
    # henan('3p')

    user_status = False  # 用户登录了就把这个改成True
    def login(auth_type): #qq
    
        def outer(func): #henan
            def inner(*args,**kwargs): #3p
                _username = "alex"  # 假装这是DB里存的用户信息
                _password = "abc!23"  # 假装这是DB里存的用户信息
                global user_status
                if user_status == False:
                    username = input("user:")
                    password = input("pasword:")
    
                    if username == _username and password == _password:
                        print("welcome login....")
                        user_status = True
                    else:
                        print("wrong username or password!")
                else:
                    print("用户已登录,验证通过...")
    
                if user_status:
                    func(*args,*kwargs) #3p
    
            return inner
        return outer
    
    
    
    def home():
        print("---首页----")
    
    def america():
        print("----欧美专区----")
    
    
    def japan():
        print("----日韩专区----")
    
    
    @login('qq') # henan = login('qq')(henan) = inner
    def henan(style):
        print("----河南专区----",style)
    

      

  • 相关阅读:
    修复PLSQL Developer 与 Office 2010的集成导出Excel 功能
    Using svn in CLI with Batch
    mysql 备份数据库 mysqldump
    Red Hat 5.8 CentOS 6.5 共用 输入法
    HP 4411s Install Red Hat Enterprise Linux 5.8) Wireless Driver
    变更RHEL(Red Hat Enterprise Linux 5.8)更新源使之自动更新
    RedHat 5.6 问题简记
    Weblogic 9.2和10.3 改密码 一站完成
    ExtJS Tab里放Grid高度自适应问题,官方Perfect方案。
    文件和目录之utime函数
  • 原文地址:https://www.cnblogs.com/dingyunfeng/p/12866563.html
Copyright © 2011-2022 走看看