Python 键入numpy数组的内部调用时不匹配

Python 键入numpy数组的内部调用时不匹配,python,jit,Python,Jit,我试图理解为什么下面的代码会给我“不匹配”的原因输入内部调用时出错 arr = np.array([(1, 2, 3, 1)], dtype=[('a1', 'i4'), ('a2', 'i4'), ('a3', 'i4'), ('a4', 'i4')]) @jit(nopython=True) def get_field_sum(ary, key): return ary[str(key)] print (get_field_sum(arr[0], 'a4')) 如果我将ret

我试图理解为什么下面的代码会给我“不匹配”的原因输入内部调用时出错

arr = np.array([(1, 2, 3, 1)], dtype=[('a1', 'i4'), ('a2', 'i4'), ('a3', 'i4'), ('a4', 'i4')])

@jit(nopython=True)
def get_field_sum(ary, key):
    return ary[str(key)]

print (get_field_sum(arr[0], 'a4')) 
如果我将return语句更改为return ary['a4'],将得到预期的结果。 numpy数组不接受函数中的参数有什么原因吗?和字符串的类型有关吗?有办法解决吗

谢谢