Python编程:类型、对象、运算符与表达式全解析
1. 可调用对象
在Python里,对象能够通过提供 __call__(self [,*args [, **kwargs]]) 方法来模拟函数。要是对象 x 具备这个方法,它就能像函数一样被调用。也就是说, x(arg1, arg2, ...) 实际上调用的是 x.__call__(self, arg1, arg2, ...) 。
2. 性能考量
Python程序的执行大多是一系列涉及特殊方法的函数调用。要是发现程序运行缓慢,首先要检查是否使用了最高效的算法。之后,通过理解Python的对象模型并尽量减少执行期间特殊方法的调用次数,能显著提升性能。
2.1 减少名称查找次数
可以尝试减少模块和类上的名称查找次数。例如:
import math
d = 0.0
for i in xrange(1000000):
d = d + math.sqrt(i)
在这个例子中,循环的每次迭代都涉及两次名称查找。先是在全局命名空间中定位 math 模块,接着在该模块中查找名为 sqrt 的函数对象。
可以对代码进行修改:
from math import sqrt
d = 0.0
for i
超级会员免费看
订阅专栏 解锁全文
2904

被折叠的 条评论
为什么被折叠?



