Python3中没有Py_FindMethod,应该用什么代替?
我正在尝试把在sourceforge上找到的Python的avl模块移植到python3。我已经解决了大部分错误,但对于
Py_LOCAL(PyObject *) avl_tree_getattr(avl_tree_Object * self, char *name)
{
return Py_FindMethod(avl_tree_methods, (PyObject *) self, name);
}
该怎么处理这些内容,我没有找到明确的信息。有一些建议在邮件列表上提到可以直接使用PyObject_GenericGetAttr
,但我必须承认,我对Python模块的内部工作了解得不够,无法看出在这个特定情况下该如何应用。
有没有什么提示?
1 个回答
0
正如你所说,PyObject_GenericGetAttr
似乎是解决方案。
在 Pascal 语言中,它看起来像这样:Result := PyObject_GenericGetAttr(obj, PyString_FromString(key))
在 C 语言中,它可能是这样的:
`return PyObject_GenericGetAttr((PyObject *) self, PyString_FromString(name))`