Python中装饰器的使用
为什么要使用装饰器呢,不使用装饰器不行吗?
当然可以不使用装饰器。但是学会使用装饰器,你的代码将会挤入上流社会,变得非常漂亮、简洁、高大上。
登录验证Demo
下面这个例子就是使用装饰器实现登录验证功能
讲讲实现思路吧:
1、通过@装饰器将main函数添加到login中且命名为fun。
2、实现的时候看似调用main函数,实则是调用login函数。
3、通过account、pwd验证后再调用fun函数
def login(fun): def isLogin(account,pwd): print(f'account:{account},pwd:{pwd}') if account==123 and pwd==123: return fun(name='欢迎你,小明') return isLogin @login def mian(name): print(f'{name}') mian(account=123,pwd=123)
带参数的装饰器
def test(flag): def a(func): def inner(*args,**kwargs): if flag: return func(*args) return inner return a @test(flag=1) def b(res): return res print(b(1))
当在开发系统的过程中,会面临着很多个接口。因顾及安全方面,我们通常会在每一个用户操作接口都会进行一次验证用户是否登录。那么这个时候,如果你用到装饰器,会让函数之间有很好的耦合性、也会更加有层次感。