以下是我看见python装饰器的一些我不熟悉的特点,所以记录一下 1 装饰器的特性: 1.1 可以吧被装饰的函数替换成不同的函数 decorate(func)。 1.2 加载模块时候立即执行。这点很有用 2 闭包的特点: 2.1 inner 能访问 outer 及其祖先函数的命名空间内的变量(局部变 ...
分类:
编程语言 时间:
2017-09-24 23:39:18
阅读次数:
228
#无传参版 import time def timer(func):# 函数test当做了一个变量传给了func def conut(): start_time=time.time() func() stop_time=time.time() print('the func run time is ... ...
分类:
编程语言 时间:
2017-09-21 11:27:15
阅读次数:
190
看廖雪峰官网的python3装饰器有感
装饰器即将一个函数作为变量在新的函数中调用此函数。
作业:
能否写出一个@log的decorator,使它既支持:
@logdeff():
pass
又支持:
@log(‘execute‘)deff():
pass
例1:
importfunctools
importtime
deflog(*args,**kwargs):#*args是个..
分类:
编程语言 时间:
2017-09-20 16:33:38
阅读次数:
261
前沿: 首先是看到了单例模型,想不明白 outer中的参数 为什么能像 global的参数 一样屹立不倒。 #单例模型 def single_model(cls): instance = {} def inner(*args, **kwargs): print if cls not in insta ...
分类:
编程语言 时间:
2017-09-18 17:20:40
阅读次数:
180
### 现在我有一个简单的myfunc函数,现在我想对myfunc函数增加功能。下面我们增加一个deco的功能。 但是这种方式存在一个问题,修改了myfunc的原来的调用方式:myfunc() > 变成了 deco(myfunc)。所以我们做了下面的改变。 ### myfunc is myfuncm ...
分类:
编程语言 时间:
2017-09-15 01:54:42
阅读次数:
264
import time def timmer(func): def wrapper(*args,**kwargs): start= time.time() func(*args,**kwargs) stop = time.time() print('执行时间是%s'%(stop-start)) re ...
分类:
编程语言 时间:
2017-09-12 19:45:27
阅读次数:
187
用装饰器完成:(1)index登录不需认证、home和bbs 登录需要认证功能;(2)home登录用本地认证,bbs登录用ldap认证 输出结果: auth func localauth func ldapwrapper func argsUsername:csy #输入Password:12345 ...
分类:
编程语言 时间:
2017-09-09 18:08:33
阅读次数:
212
【装饰器】 函数即对象 在python的世界里,函数和我们之前的[1,2,3],'abc',8等一样都是对象,而且函数是最高级的对象(对象是类的实例化,可以调用相应的方法,函数是包含变量对象的对象)。 函数在内存的存储情况: 图1 函数对象的调用仅仅比其它对象多了一个()而已!foo,bar与a,b ...
分类:
编程语言 时间:
2017-09-09 12:57:50
阅读次数:
263
装饰器:定义:装饰器本质是函数;器代表函数;功能:装饰其他函数,就是为其他函数添加附加功能;原则:1.不能修改被装饰的函数的源代码2.不能修改被装饰的函数的调用方式装饰器对被装饰的函数是透明的。感受不到装饰器的存在。 实现装饰器知识储备:1.函数即“变量”一个简单..
分类:
编程语言 时间:
2017-09-08 18:12:30
阅读次数:
180