装饰器

作用:在不修改函数的前提下,为函数增加新的功能

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)

 

输出结果:

posted @ 2019-12-18 16:31  陌小唐  阅读(108)  评论(0)    收藏  举报