【发布时间】:2013-06-27 15:04:02
【问题描述】:
我一直在使用 Python,我设置了以下代码情况:
import timeit
setting = """
import functools
def f(a,b,c):
pass
g = functools.partial(f,c=3)
h = functools.partial(f,b=5,c=3)
i = functools.partial(f,a=4,b=5,c=3)
"""
print timeit.timeit('f(4,5,3)', setup = setting, number=100000)
print timeit.timeit('g(4,5)', setup = setting, number=100000)
print timeit.timeit('h(4)', setup = setting, number=100000)
print timeit.timeit('i()', setup = setting, number=100000)
我得到以下结果:
f: 0.181384086609
g: 0.39066195488
h: 0.425783157349
i: 0.391901016235
为什么调用部分函数需要更长的时间?部分函数只是将参数转发给原始函数还是将静态参数映射到整个过程?另外,在 Python 中是否有一个函数可以返回填充的函数体,因为所有参数都是预定义的,就像函数 i 一样?
【问题讨论】:
标签: python function partial functools