python中装饰器之有参装饰器(三)

你。 提交于 2019-12-04 08:46:17

无参装饰器:

在调用无参装饰器时,不需要在外层传递参数。

适用于例如:

  - 为某个函数增加统计运行时间功能

  - 为某个函数运行前增加登录认证功能

有参装饰器:

在调用有参装饰器时,对其传入一个或多个参数。

适用于例如:

  - 验证用户类型

def user_auth(user_group):
    def wrapper(func):
        def inner(*args, **kwargs):
            if user_group == 'SVIP':
                print('Dear SVIP')
                res = func(*args, **kwargs)
                return res

            elif user_group == 'General':
                res = func(*args, **kwargs)
                return res

            else:
                print('Please login first!')
                login()

        return inner

    return wrapper


@user_auth(user_group='SVIP')
def welcome():
    print('Welcome to the index')


welcome()

 

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