美文网首页
python装饰器简单使用

python装饰器简单使用

作者: 五月的天at | 来源:发表于2020-09-17 13:49 被阅读0次

'''

理解装饰前先理解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装饰器简单使用

      本文链接:https://www.haomeiwen.com/subject/mlulyktx.html