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

python 装饰器的用法

时间:2017-07-07 23:39:19      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:style   bbb   等于   步骤   bsp   功能   code   ret   为什么   

为什么要使用装饰器?

在不改变原函数功能的情况,为了添加新的功能 我们可以在函数运行前后给函数添加新的功能

 1 def outer(func):
 2     #fun()等于原f1函数
 3     def inner():
 4         print(ccccc)
 5         r=func()
 6         print(dddd)
 7         return r
 8     return inner
 9 @outer
10 #@outer代表运行了2个步骤:1.将f1作为参数运行outer函数,2.新函数f1=inner()
11 def f1():
12     print(很复杂)
13 r=f1()
14 print(r)
15 #输出:ccccc
16 #     很复杂
17 #    dddd
18 #    None

 

两个装饰器的作用

def outer_1(func):
    def inner(*args,**kwargs):
        print(aaaa)
        r=func(*args,**kwargs)
        print(bbbb)
        return r
    return inner

def outer(func):
    def inner(*args,**kwargs):
        print(ccccc)
        r=func(*args,**kwargs)
        print(dddd)
        return r
    return inner

@outer_1
@outer
def f1(a1,a2):
    print(很复杂)
    return a1+a2

r=f1(2,4)
print(r)
#输出:
aaaa
ccccc
很复杂
dddd
bbbb
6

 

python 装饰器的用法

标签:style   bbb   等于   步骤   bsp   功能   code   ret   为什么   

原文地址:http://www.cnblogs.com/wangbinbin/p/7134435.html

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