一文读懂Python装饰器 @
很简单,名字叫做装饰器,肯定就是用来装饰东西的啊,用谁来装饰谁呢? 用@后面的东西来装饰@下一行的东西;
另外我们要知道,python中传递的参数不仅仅可以是变量、类等,方法也可以直接进行传递;
举个例子
def function(f):
f()
print('a')
@function
def function2():
print('b')
function2()
result:
b
a
什么意思呢:
首先,你要知道python中函数是可以传递的;
其次,@function就是对下一行的函数装饰一下,穿件衣服,就是把function2作为function()的参数穿进去,再赋值给function2(),用代码表示就是:
function2 = function(function2) #俄罗斯套娃
所以,此时你再运行function2(),结果就是
b
a