gpt4 book ai didi

python - 如何处理 PyObject_GetItem() 函数中的 `key' 参数

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:46 25 4
gpt4 key购买 nike

我正在用我自己的 c 库编写一个 python 模块,我需要知道如何处理 PyObject_GetItem()函数,特别是 key 参数,文档不是很有帮助,我看到了一个解决方案的例子

Py_hash_t hash;

hash = PyObject_Hash(key);

但问题是,我想知道 key 是字符串还是整数。

如果有办法区分字符串键和整数键,我可以使用 PyObject_Hash() 方法,因为我还可以使用 Python 哈希函数计算与字符串对应的哈希值,但我宁愿不这样做,因为我已经在列表上实现了二进制搜索,我试图通过 python 中的下标访问它。

我也试过

PyArg_ParseTuple(key, "i", ...);

并为字符串检查哪个成功,但随后解释器抛出异常,因为 key 不是元组。

最佳答案

我刚刚找到了正确的方法,有一个 PyUnicode_Check()接受单个 PyObject 参数并返回 0 如果对象不是 unicode 对象的宏,因此它返回 0 对于 int 键,对于字符串键非零。

这正是我所需要的,因为现在我可以继续提取文本并在我的列表中执行二进制搜索。

此外,还有一个 PyObject_TypeCheck()返回对象类型的函数,在这种情况下也非常有用。

关于python - 如何处理 PyObject_GetItem() 函数中的 `key' 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com