python通用装饰器_python带有通用参数的通用装饰器

# -*- coding:utf-8 -*-

# 带有通用参数的通用装饰器

def check_with_para(*args2, **kwargs2):

def check(fn):

def inner(*args, **kwargs):

print("密码验证完毕,通过, args=%s,kwargs=%s"%(args, kwargs))

if "haha" == args2[0]:

return fn(*args, **kwargs)

elif "hehe" == args2[1]:

print("这里可以做点其它不同的处理1")

return fn(*args, **kwargs)

else:

print("这里可以做点其它不同的处理2")

return fn(*args, **kwargs)

return inner

return check

# 1. 先执行check_with_para("haha")函数, 返回check的引用

# 2. 再执行@check

# 3. 使用@check对f1进行装饰

@check_with_para("haha")

def f1(n1, n2):

print("功能1执行中")

return n1 + n2

@check_with_para("hehe", 1)

def f2(n1, n2, n3):

print("功能2执行中")

return n1 - n2 * n3

@check_with_para("heihei", 2, True)

def f3():

print("功能2执行中")

if __name__ == '__main__':

print(f1(7, 8))

print(f2(1, 4, 2))

print(f3())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值