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

    1、基础知识准备  详见随笔的第二大点

    https://www.cnblogs.com/ychj/p/9461550.html

    2、具体运行原理

     def outer(func):

      def inner(*args,**kwargs):      ==========>inner 的参数采用万能参数

        print("before")

        r = func(*args,**kwargs)    ===========》Python自动把参数传给func

        print("after") 

        return r    ==========>  将原函数的返回值 继续返回

      return inner

    @outer            ==========>@+函数名

    def f1(a):                                    功能: 1、自动执行outer函数并且将其下面的函数名f1当作参数传递

      print("f1")                                      2、将outer函数的返回值,重复赋值给f1

      return "fffffff"

    具体运行顺序(解释):先把outer函数载入内存,然后运行到@outer时,将f1函数整体赋值给func  ,此时func 就是代表老的func函数,同时运行outer函数, outer函数运行的结果就是返回值  inner函数赋值给了f1函数,此时的f1函数就变成了新的innter函数,所以就是将原函数f1 保存在func同时将f1重新赋值新函数这样一个过程

    具体的应用就是在不改变原函数的内容的基础之上,调整原函数的具体功能。

  • 相关阅读:
    DNN SEO专题 (收集)
    DataTable或者DataSet匯出Excel
    用C#制作PDF文件全攻略(转)
    BlogEngine资料收集
    DNN架构解析(收集)
    Community Server:快速找到需要修改的文件[技巧]
    通用的分页存储过程
    DataTable/DataSet汇出Excel
    百试不爽的30条职场经验(转)
    等宽字体
  • 原文地址:https://www.cnblogs.com/ychj/p/9463778.html
Copyright © 2011-2022 走看看