zoukankan      html  css  js  c++  java
  • 装饰器

    装饰器:又叫包装函数

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

  • 相关阅读:
    文本框只能输入数字
    Excel 文件读取
    C# 时间格式
    window 锁屏
    窗体程序 (控件随窗体变化而变化)
    dataGridView操作数据(增加 读取 绑定 获取选择的单元格 选中整行单元格时颜色变换 更新数据 锁定列的位置 添加行 列头的方法)
    集合
    登录窗体关闭 show() showDialog()
    查询字符串中字母出现的个数
    pytorch F.cross_entropy(x,y)理解
  • 原文地址:https://www.cnblogs.com/hongfeng2019/p/11850167.html
Copyright © 2011-2022 走看看