• 装饰器


    装饰器:又叫包装函数

    作用: 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")

  • 相关阅读:
    java上传文件依赖的jar
    maven创建web项目很慢
    人才的成长与工作环境
    msdtc
    阿里巴巴的ChaosBlade
    集成电路
    晶体管
    PHPStorm如何快捷提交代码到服务器
    PHP 7新特性
    题(3)
  • 原文地址:https://www.cnblogs.com/hongfeng2019/p/11850167.html
Copyright © 2020-2023  润新知