zoukankan      html  css  js  c++  java
  • python_3 装饰器之初次见面

    装饰器

    定义:本质是函数,(只不过是用来装饰其他函数而已),就是为其他函数添加附加功能

    原则:

    • 1. 不能修改被修饰函数的源代码
    • 2.不能修改被修饰函数的调用方式

    实现装饰器的知识储备

    • 1.函数即“变量”
    • 2.高阶函数
      • a.把一个函数名当做实参传给另外一个函数
      • b.返回值中包含函数名
    • 3.嵌套函数

    综上,高阶函数 + 嵌套函数 ===> 装饰器

    程序示例:

    def fun(bar):
        def dec():
            print('this is dec')
            bar()
        return dec
    
    @fun #test = fun(test)   test = dec
    #####################下面是被装饰函数##########################
    def test():
        print('test is here')
    
    test()
    

    把text传给bar的时候,bar就相当于之前的text了,在执行@fun的时候,函数fun(text)运行后,返回dec给text,那么此时text已经不是之前的text了,此时text已经成了dec,也就是我们的装饰函数,由于之前我们把text悄悄传给了bar,那么装饰函数运行完之后,调用bar()就解决了。

    记住:返回值包含函数名

    此处建议断点调试

  • 相关阅读:
    python编码的那些事
    算法基础与排序
    排序算法之low B三人组
    Django之反向生成url
    ipython的用法详解
    python3的zip函数
    Django中url的生成过程详解
    Django的ORM实现数据库事务操作
    Django的admin.py注册流程
    Django跨域请求之JSONP和CORS
  • 原文地址:https://www.cnblogs.com/zhqin/p/9925711.html
Copyright © 2011-2022 走看看