装饰器
定义:作用在代码运行期间动态的增加功能。本质上是返回函数的高阶函数。
#一个已有的代码
def Hello():
print(' Word!')
函数对象中,可以拿到函数名字的一个属性是:__name__
注意这里是前后两个下划线:._ _name_ _(我将中间放一个空格为了方便看清楚,实际使用时不用中间的空格)
>>> Hello.__name__
'Hello'
>>> f=Hello
>>> f()
Word!
>>> Hello.__name__
'Hello'
>>> f.__name__
'Hello'
现在使用装饰函数,在调用Hello函数时,进行一些操作。
1.装饰器无参数,函数无参数
装饰函数中要把需要被装饰的函数当做参数传进去
def decorator(func):
print('%s '%func.__name__,end='') #返回被装饰的函数
return func
现在使用一下装饰函数来装饰Hello函数
@decoratordef Hello():
print(' Word!')
打印被装饰好的函数
Hello()
输出: Hello Word!