2012-04-14 32 views

回答

4

是的,請使用tp_as_mapping來代替。

它的mp_subscript需要PyObject *,所以你可以使用任何東西作爲索引/鍵。

爲了理解它們之間的關係,你可以看一下PyObject_GetItem()的來源,其中(如文檔所述)等效於Python o[key]表達式。你會看到它首先嚐試tp_as_mapping,如果那不是,那麼鍵是int,它會嘗試tp_as_sequence