Я пишу модуль python
из собственной библиотеки ac, мне нужно знать, как обрабатывать функцию PyObject_GetItem()
, в частности аргумент key
, документация не очень полезно, и я видел пример, в котором растворКак обрабатывать аргумент `key 'в функции PyObject_GetItem()
Py_hash_t hash;
hash = PyObject_Hash(key);
но проблема в том, что я хотел бы иметь возможность знать key
является ли строка или целое число.
Я мог бы использовать metdod PyObject_Hash()
, если есть способ отличить строковый ключ от целочисленного ключа, так как я могу также вычислить значение хэша, соответствующее строке, используя хеш-функцию Python, но я бы предпочел не делать этого потому что у меня уже есть бинарный поиск, реализованный в списке, который я пытаюсь получить через subscriptip в python.
Я также попытался
PyArg_ParseTuple(key, "i", ...);
и для строки, чтобы проверить, какие один преуспевает, но тогда интерпретатор генерирует исключение, потому что key
не кортеж.
Зачем вам нужно знать тип? Что, если это не так? –
@ IgnacioVazquez-Abrams, потому что я хочу предоставить два метода для извлечения элементов, по индексу и по имени элемента, есть имя, связанное с каждым, и очень важно использовать его для доступа к элементу. –
Как бы вы это сделали в Python? Найдите подходящие эквиваленты C-api для инструментов Python, которые вы будете использовать. – user2357112