参考资料:https://www.yiibai.com/python/decorator.html
make_pretty()是一个装饰器,接收函数ordinary,添加一些函数并返回。
函数ordinary()得到了装饰,返回函数的名字:pretty。
def make_pretty(func):
def inner():
print("I got decorated")
func()
return inner
def ordinary():
print("I am ordinary")当在shell中运行以下代码时,如下
>>> ordinary()
I am ordinary
>>> pretty = make_pretty(ordinary)
>>> pretty()
I got decorated
I am ordinary一般来说,我们装饰一个函数并重新分配它,
ordinary = make_pretty(ordinary).
这是一个常见的结构,Python有一个简化的语法。
可以使用@符号和装饰器函数的名称,并将其放在要装饰的函数的定义之上。 例如,
@make_pretty
def ordinary():
print("I am ordinary")
上面代码相当于
def ordinary():
print("I am ordinary")
ordinary = make_pretty(ordinary)
580

被折叠的 条评论
为什么被折叠?



