Python functools partial efficiency
I have been working with Python and I set up the following code situation: 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) I get the following as a result: f: 0.181384086609 g: 0.39066195488 h: 0.425783157349 i: 0.391901016235 Why do