有参装饰器

拥有回忆 提交于 2019-12-04 09:39:35

装饰器分为无参装饰器和有参装饰器

无参装饰器:在装饰被装饰对象时,没有参数传入的装饰器

有参装饰器:通过三层闭包,最外层传值,为装饰器提供多样功能选择(客户权限分类)。

# 有参装饰器: 在某些时候,我们需要给用户的权限进行分类
def user_level(level):
    def deco(func):
        def wrapper(*args,**kwargs):
            if level == 'VIP':
                # 添加超级用户的功能
                print('&&&&&')
                res = func(*args,**kwargs)
                return res
            elif level == 'Normal':
                # 添加普通用户的功能
                print('#####')
                res = func(*args,**kwargs)
                return res
            else:
                print('无权限')
                return 
        return wrapper
    return deco

@user_level('111')

def skin():
    print('*****')
skin()>>>无权限

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!