- 不含参数的函数安装装饰器
def zsq(func):
def f2():
print('先装饰一下')
func()
return f2
@zsq
def f():
print('这是这个函数真正要做的事情')
f()
执行结果是:
先装饰一下
这是这个函数真正要做的事情
2.含参数的函数安装装饰器
def zsq(func):
def f2(x):
print('先装饰一下')
return func(x)
return f2
@zsq
def f(x):
return x*2
print(f(3))
print(f(5))
执行结果是
注意: def f2(x):
print(‘先装饰一下’)
return func(x)
第一,必须也要含有个数相同的参数f2(x)
第二,最后必须有return语句,也就是原来有return,那么装饰器函数也应该有return语句。这样才符合常理,是不是?