Python:为什么operator .__ mul__比int .__ mul__快得多

时间:2015-01-07 11:49:01

标签: python

我正在玩Python并决定以两种略微不同的方式编写一个因子函数:

import operator
def fact1(n):
    return reduce(operator.__mul__,xrange(1,n+1))

def fact2(n):
    return reduce(int.__mul__,xrange(1,n+1))

在计时时我很惊讶:

timeit fact1(10)
1000000 loops, best of 3: 933 ns per loop
timeit fact2(10)
1000000 loops, best of 3: 1.46 us per loop

operator.__mul__似乎比int.__mul__快两倍(除非在析因值变得如此之大以致Python将其从int转换为long时) / p>

我对Python很陌生,因此我不知道这些功能有何不同。是否存在性能差异的潜在原因?

0 个答案:

没有答案