python高级进阶_6_全能装饰器的格式写法05

本文深入探讨了全能装饰器的设计与实现,确保无论被装饰函数是否有返回值,或参数数量多少,都能完美支持。通过具体代码示例,展示了如何创建一个灵活的装饰器,适用于各种函数场景。

全能装饰器要求 :

1.被装饰函数 支持 不管有没有返回值都需要支持,
2. 被装饰函数支持 ,不管有多少参数 ,装饰器都要支持
满足了就可以认为是全能了, 实际我们结合前面两个章节 就可以得出 , 请看下边的代码 :

def test(func):
        def test_in(*args,**kwargs):
            print ("log 日志为  ")
            a=func(*args,**kwargs)
            return a
        return  test_in
@test
def f1():
    return "被装饰函数"
@test
def f2():
    print("没有返回值函数")
@test
def f3(a):
    return a
@test
def f4(a,b,c):
    return  a+b+c

print (f1())   # 有返回值
print (f2())  # 没有返回值
print (f3(3)) # 有返回值 ,并且传入一个参数 
print(f4(1,2,3))# 有返回值 并且传入多个参数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值