装饰器的返回
返回未修改的原始函数
不带参数装饰器的使用
def foo(func):
`def writer(*args,**kwargs):
print("hallo")
func()
print("I am learning decrator")
return writer
@foo
def hi():
print("world")
hi()
结果:
halloworldI am learning decrator
带参数的装饰器的使用
b='hahaha'
def a(text):
def foo(func):
def writer(*args,**kwargs):
print("hallo")
func(text)
print("I am learning decrator")
return writer
return foo
@a(b)
def hi(text):
print(text)hi()
结果:
hallo
hahaha
I am learning decrator
带参与不带参的比较
带参的就是多了一层函数放参数
注意装饰器的参数放在@里,可以用变量(必须在@前面定义),也可以用字符串放在或者……(你所需要的参数值),调用这个装饰器函数时不需要加参数