'''
理解装饰前先理解python闭包的概念:https://www.cnblogs.com/s-1314-521/p/9763376.html
下面是对装饰器的简单举例
'''
'''
实质: 是一个函数
参数:是你要装饰的函数名(并非函数调用)
返回:是装饰完的函数名(inner)
作用:为已经存在的对象添加额外的功能
特点:不需要对对象做任何的代码上的变动
'''
# 被装饰的函数无参数
def decorate(func):
'''
装饰器打印出执行方法的名字
:paramfunc: 方法的引用。可以这样理解 a=1,1在内存地址中,a是对1的引用。同样的func就是对func()的引用,不带()就是对方法的引用(里面还有一些属性,func.__name__等等),带()就是表示要执行这个方法
:return:
'''
def inner():
print('执行的方法名:', func.__name__)
func()
return inner
# 被装饰的函数有参数
def decorate_arg(func):
def inner(a, b):
print('执行的方法名:', func.__name__)
func(a, b)
return inner
@decorate
def good_bye():
print('say good_bye')
@decorate_arg
def add_num(a, b):
print(a + b)
if __name__ =='__main__':
good_bye()
print('------')
add_num(1, 2)
打印结果:
执行的方法名: good_bye
say good_bye
------------
执行的方法名: add_num
3
python装饰器简单使用
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 5月以来,哪怕对市场风向再不敏感的人,也感觉到阵阵凉意。二级市场连续下挫,一级市场融资环境恶化,不论企业融资数量还...