-
请编写一个@performance,它可以打印出函数调用的时间。
计算函数调用的时间可以记录调用前后的当前时间戳,然后计算两个时间戳的差。
参考代码:
import time def performance(f): def fn(*args, **kw): t1 = time.time() r = f(*args, **kw) t2 = time.time() print 'call %s() in %fs' % (f.__name__, (t2 - t1)) return r return fn @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
查看全部 -
这章似懂非懂
查看全部 -
当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
查看全部 -
旧版本加入新版本功能,使用__future__
例如: from __future__ import division
查看全部 -
如果要提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写,这样就能大大提高执行速度。
如果导入的模块不存在,Python解释器会报 ImportError 错误。
利用ImportError错误,我们经常在Python中动态导入模块:
try: from cStringIO import StringIO except ImportError: from StringIO import StringIO
try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。
查看全部 -
在不同py文件中(即不同模块),同名变量互不影响。
在一个模块中引用第三方模块,使用import语句,例如:import util
在不同文件夹中(即不同包),同名模块互不影响。(完整模块名不同)
例如:import p1.util
区分包和普通目录:包下面必须有个__init__.py文件,即使是空文件。
查看全部 -
functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值。
查看全部 -
要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。
要在Python 2.7中引入3.x的除法规则,导入__future__的division
查看全部 -
利用引入不存在的模块错误报错,动态导入模块
查看全部 -
try:
.....一
except xxxERROR:
......二
尝试先做一,出现了xxx错误就执行二
查看全部 -
为什么c、c++语言能够提高速度?
查看全部 -
可以认为math就是一个指向已导入模块的变量,通过该变量可访问math模块中所定义的所有公开的函数。
导入模块中的某几个函数:
from 模块名 import 函数名,...,...
如果不同模块之间的函数名相同,则调用时需要给函数起个别名:
from 模块名 import 函数名 as 新模块名
查看全部 -
每个包是一个文件夹,每个文件是一个模块。
包下面必须有一个__init__.py文件 ,每层都必须有。即使为空。只有这样python才会把这个目录当成一个包来处理。
代码多的时候分在不同的PY文件中,易于维护。
且同一个名字的变量互不影响。
引用其它模块xxx:import xxx,调用其他模块中的函数lll:xxx.lll( )
同名模块再放入不同的包中。
引用完整的模块:inport 包名.模块名.函数
查看全部 -
装饰器的作用:
1、打印日志:@log
2、检测性能:@performance
3、数据库事务:@transaction
4、URL路由:@post('/register')
查看全部 -
关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。
匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
查看全部
举报