python中初级装饰器总结

Posted rcat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中初级装饰器总结相关的知识,希望对你有一定的参考价值。

打印 args 与 *args 的区别

1 #打印时区别
2 def outer(*args, **kwargs):
3     print(args)         #输出结果:(1, 2, 3, 4)
4     print(*args)        #输出结果:1 2 3 4
5 
6 outer(1,2,3,4)
 1 #函数调用时区别
 2 def outer(*args, **kwargs):
 3     print(args)
 4     print(*args)        #也是调用函数,调用的是print函数
 5 
 6 outer([1,2,3,4])        #输出结果:([1, 2, 3, 4],)
 7                         #          [1, 2, 3, 4]
 8 
 9 outer(*[1,2,3,4])        #输出结果:(1, 2, 3, 4)
10                         #           1 2 3 4
11                         #等价于outer(1,2,3,4),以及outer(*(1,2,3,4))

规律

 1 def outer(*args, **kwargs):
 2     print(args)
 3     print(*args)        #也是调用函数,调用的是print函数
 4     def inner(*args):
 5         print(inner:,args)
 6     inner(*args)
 7 
 8 outer(1,2,3,4)            #输出结果:(1, 2, 3, 4)
 9 #                         #           1 2 3 4
10 #                         #           inner: (1, 2, 3, 4)    在被传参时聚合

总体

技术分享图片

def wrapper(func):
    def inner(*args,**kwargs):
        print(在被装饰的函数执行之前做的事)
        ret = func(*args,**kwargs)
        print(在被装饰的函数执行之后做的事)
        return ret
    return inner

@wrapper
def func(day):
    print(python目前是排名第{}的语言.format(day))
    return 所以我们一定要坚持学习python

ret = func(4)
print(ret)

 

以上是关于python中初级装饰器总结的主要内容,如果未能解决你的问题,请参考以下文章

python使用上下文对代码片段进行计时,非装饰器

python装饰器总结

Python装饰器总结

python全栈学习总结六:装饰器

Python面向对象学习之八,装饰器

python的闭包及装饰器