作用:在不修改函数的前提下,为函数增加新的功能
def say():
print("tttt is a good man!")
# def outer():
# print("***************")
# say()
def outer(func):
def inner():
print("*******")
func()
return inner
f=outer(say)
f()
此时调用f()函数,其实是调用inner()函数,输出结果如下:
def outer(func):
def inner(age):
if age<0:
age=0
func(age)
return inner
@outer # say=outer(say)
def say(age):
print("my age is %d years old"%age)
say(-100)
输出结果:
多个参数,装饰器
def outer(func):
def inner(*args,**kwargs):
print("********************")
func(*args,**kwargs)
return inner
@outer
def say(name,age):
print("my name is %s;my age is %d"%(name,age))
say("ttt",18)
输出结果:
原文:https://www.cnblogs.com/moxiao/p/12060589.html