Наблюдения, догадки и т. Д .:
То же самое происходит в Python 2.x.
dict_subscript
реализует эквивалент метода high_level dict.__getitem__
и, таким образом, вызывается всякий раз, когда adict[somekey]
появляется не на LHS присвоения в коде Python.
PyDict_GetItem
является частью C API. Возможно, это упущение, что оно не было обновлено.
Прочитав ужасные комментарии в начале PyDict_GetItem
, я бы вместо этого использовал PyDict_GetItemWithError
; -)
Возможно, вы можете сделать эквивалент уровня my_getitem = getattr(my_dict, '__getitem__')
на уровне C, а затем вызвать его.
Возможно, вы могли бы подать заявку на ошибку или спросить на comp.lang.python