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))
当在开发系统的过程中,会面临着很多个接口。因顾及安全方面,我们通常会在每一个用户操作接口都会进行一次验证用户是否登录。那么这个时候,如果你用到装饰器,会让函数之间有很好的耦合性、也会更加有层次感。