gpt4 book ai didi

python - 如何检查 PyObject 是 Python C 扩展的字符串还是 Unicode

转载 作者:太空宇宙 更新时间:2023-11-03 15:43:18 32 4
gpt4 key购买 nike

在 Python(2) 中,检查变量是否为 strunicode 类型的惯用方法是

isinstance(var, basestr)

Concrete Object Layer documentation ,我没有看到任何类似 basestr 的内容。

目前我正在验证如下变量:

PyObject *key;
//...
if (!PyString_Check(key) && !PyUnicode_Check(key)) {
PyErr_SetString(PyExc_ValueError, "Key must be string");
return NULL;
}

有没有更简洁的方法来检查 PyObject 的类型是 str 还是 unicode

最佳答案

有一个 PyBaseString_Type (例如,参见 stringobject.h ,奇怪的是我在文档中也找不到它......),它与 basestring 相同:

PyObject *key;
// ...
if (!PyObject_TypeCheck(key, &PyBaseString_Type)) {
PyErr_SetString(PyExc_ValueError, "key must be a string.");
return NULL;
}

关于python - 如何检查 PyObject 是 Python C 扩展的字符串还是 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970500/

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