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

无参装饰器:

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

适用于例如:

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

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

有参装饰器:

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

适用于例如:

  - 验证用户类型

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()

猜你喜欢

转载自www.cnblogs.com/Ghostant/p/11850842.html