首页 > 其他 > 详细

装饰器

时间:2019-12-18 16:47:00      阅读:65      评论:0      收藏:0      [点我收藏+]

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!