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

    装饰器功能有两点:1.首先自动执行装饰器@后面跟的这个函数,并将装饰器修饰的那个函数名作为参数带入装饰器@后面函数;2.将装饰器后面函数的返回值,赋值给装饰器所修饰的那个函数。举个例子说明:

     1 def outer(func):
     2     def inner():
     3         print('log')
     4         ret = func()
     5         print('after')
     6         return ret
     7     return inner
     8 
     9 @outer 
    10 def f1():
    11     print('F1')

    其中@outer即为装饰器函数,按照上面介绍,首先执行Outer函数,将f1函数的函数名f1作为outer的参数,执行outer(f1),然后outer()执行的返回值inner赋值给f1,这段代码执行下来,也就是inner()替代了f1()。由于inner()函数内部调用了func也就是f1,所以就会在f1执行的前后分别打印输出一个"log"和"after"。

    简单理解就是:装饰器函数func代表老的f1()函数,执行打印F1的操作,而inner()代表新的f1函数。

  • 相关阅读:
    进阶篇:3.1.8)DFM塑胶-注射模具和设备
    PAT-甲级-1001-A+B Format
    腾讯-004-两个排序数组的中位数
    机器学习三 决策树
    腾讯-002-两数相加
    2018.3.15
    2018.3.14
    2018.3.13
    废代码合集
    边缘检测程序(matlab)
  • 原文地址:https://www.cnblogs.com/chenxiforever/p/5746492.html
Copyright © 2011-2022 走看看