首页 > 其他 > 详细

装饰器

时间:2019-11-13 16:37:32      阅读:63      评论:0      收藏:0      [点我收藏+]

装饰器:又叫包装函数

作用: 1. 添加说明,提醒等. 2. 添加登,验证陆装饰器

原理是在执行student时会把student作为deco的参数传到deco中执行,student函数在deco的子函数wrapper中做为参数被执行.(即在装饰器的装饰下执行函数)

def deco(func):

    def wrapper():

        print("======start====")

        func()

        print("======end====")

    return wrapper

@deco

def student():

    print ("student")

student()

 

#加了装饰器,函数就作为装饰器的参数被执行,通过wrapper返回结果

 

注意:解决形参问题,在装饰器中用可变参数

def deco(func):

    def wrapper(*args):

        print("======start====")

        func(*args)

        print("======end====")

    return wrapper

 

@deco

def student(name, age):

    print("student info name is {} age {}".format(name, age))

 

student("guohongze", 35)

 

完整装饰器:

def logging(level):

    def wrapper(func):

        def inner_wrapper(*args, **kwargs):

            print("[{level}]: enter function {func}()".format(

                level=level,

                func=func.__name__))

            return func(*args, **kwargs)

        return inner_wrapper

    return wrapper

 

@logging(level=‘INFO‘)

def say(something):

    print("say {}!".format(something))

 

 

@logging(level=‘INFO‘)

def hello(name, age, sex):

    print("hello student")

    print("your name is {}".format(name))

    print("your age is {}".format(age))

    print("your sex is {}".format(sex))

 

say("hello world!")

hello("hf", 35, "male")

装饰器

原文:https://www.cnblogs.com/hongfeng2019/p/11850167.html

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