码迷,mamicode.com
首页 > 编程语言 > 详细

python入门之装饰器

时间:2018-11-01 01:01:43      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:span   start   相同   fun   outer   out   art   一个   现在   

入门原理:

  一系列函数要做相同的修改,在这些函数执行之前做的操作,或者在执行之后做的操作都可以在一个装饰器(函数)里修改

 

作用:

  在不改变原函数的情况下,对原函数的操作前或者操作后做些改变,这就是装饰器的作用

 

def outer(func):
    #装饰器
    def inner(*arg,**kwargs):
        print("start")
        r = func(*arg,**kwargs)
        print("end")
        return r
    return inner

@outer

def f1(a1,a2):
    #对此函数做修改
    print("f1")

f1(1,2)

  1.@outer 是执行outer装饰器,这条语句下面的所有函数f1,会当作参数通过outer的形参func传入到outer里面,那么outer的函数体里 func = 原来的f1函数

  2.将outer的返回值重新赋值给f1(f1=outer的返回值),那么后面执行f1的时候就执行现在这个f1函数(f1=outer的返回值),并非原来的f1函数

  3.outer的返回值是inner函数,所以新的f1函数=inner,所以要执行f1(1,2)其实就是执行的是inner(1,2),而r = func(*arg,**kwargs)这句是执行原来的f1函数

python入门之装饰器

标签:span   start   相同   fun   outer   out   art   一个   现在   

原文地址:https://www.cnblogs.com/chy-op/p/9886485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!