'''
理解装饰前先理解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月以来,哪怕对市场风向再不敏感的人,也感觉到阵阵凉意。二级市场连续下挫,一级市场融资环境恶化,不论企业融资数量还...