关于python装饰器小结

装饰器是一个可以很好满足“开放-封闭”设计原理的一种设计模式。其主要原理与闭包相似,函数内返回一个函数名。如下段代码:

def home():
    print('---首页----')


def america():
    print('---欧美专区---')


def japan():
    print('----日韩专区----')


def henan(style):
    print('-----河南区-----')

如果我要给每一个模块加上登陆认证,可以写一个装饰器:

user_status = False


def login(func):
    def inner(*args,**kwargs):
        _username = 'alex'
        _password = '123123'
        global user_status
        if user_status == False:
            username = input('username:')
            passwd = input("password:")
            if username == _username and passwd == _password:
                print('welcome %s' % username)
                # func()
                user_status = True
            else:
                print('password or username does not exited')
        if user_status==True:
            print('用户通过认证')
            func(*args,**k)
    return inner  #返回函数名

相当于在login函数里面,套用inner函数

当你调用henan函数的时候,

henan=login(henan)   #执行login函数,返回inner名。这时候并执行inner

henan()#真正的执行了inner

完成了一个小小的login装饰器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值