为什么get_score
会导致这种Error
但fx
不会
from operator import getitem
from functools import partial
# getitem(a, b) -- Same as a[b]
d = dict(name='foo', score=100)
get_score = partial(getitem, b='score')
get_score(d)
# expect 100 but
# TypeError: getitem() takes no keyword arguments
def f(x, y):
return x+y
fx = partial(f, y=2)
fx(5) == 7 # True
答案 0 :(得分:1)
getitem()
可能是用C而不是Python实现的,并且不支持关键字参数。使用C API实现Python函数与使用Python本身实现有很大不同。特别是在使用C API时,参数解析更加明确。