Częściowa wydajność funkcji Pythona

Pracowałem z Pythonem i ustawiłem następującą sytuację kodu:

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)

W wyniku otrzymuję:

f: 0.181384086609
g: 0.39066195488
h: 0.425783157349
i: 0.391901016235

Dlaczego wywołania funkcji częściowych trwają dłużej? Czy funkcja częściowa przekazuje parametry do pierwotnej funkcji, czy też mapuje argumenty statyczne przez cały czas? A także czy w Pythonie istnieje funkcja zwracająca treść wypełnionej funkcji, zważywszy, że wszystkie parametry są predefiniowane, jak w przypadku funkcji i?

questionAnswers(2)

yourAnswerToTheQuestion