码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器

时间:2018-04-07 18:59:12      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:就是   调用   修改   存在   time   fun   原则   bsp   turn   

装饰器所需要的知识:1.函数即“”变量“”        2.高阶函数        3嵌套函数

 

一。函数即变量

1.装饰器的本质是函数,就是为其他函数添加附加功能。

2.装饰器使用原则:1.不修改被装饰函数的源代码,

                                2.也不修改被装饰函数的调用方式。

 

3.变量是存在于内存当中,x=1,x在程序完成后就会被删除,或者del也可以删除x,但删除不了1,1是python定期刷新清理没有使用的变量时删除。

二,高阶函数

1,把一个函数名单做实参传给另一个函数

2,返回值中包含函数名

 def bar()

       print  ("in the bar")

bar#bar()是函数,根据函数即变量,可以得到bar是指向这个函数的内存地址。  

 def test1(func)

           print(func)

   test1(bar)#注意这里是函数名,而非函数,这才叫高阶函数。

 

def  too():

       def rrr():#这叫函数的调用,必须是def里面有def。

def too():

      rrr()#这叫 函数的调用。

完整事例如下:

#edit by weiwei xu

import time
def timer(func):#func=test1
def deco(*args,**kwargs):#传递参数
start_time=time.time()
func(*args,**kwargs)
stop_time=time.time()
print("the func run time is %s" % (stop_time-start_time))
return deco
@timer #test1=timer(test1) test1()=deco()
def test1():
time.sleep(3)
print("in the test1")
@timer
def test2(name,age):
time.sleep(3)
print("xww:",name,age)
test1()
test2(‘xww‘,22)
运行结果如下:

in the test1
the func run time is 3.000171661376953
xww: xww 22
the func run time is 3.000171422958374

装饰器

标签:就是   调用   修改   存在   time   fun   原则   bsp   turn   

原文地址:https://www.cnblogs.com/xuxiaole/p/8733883.html

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