如果我理解正确,
PyModule_Create
Python 2.X中的 PyMODINIT_FUNC已替换为Python3.X两者都 return
PyObject*
,但是,在 Python 3.X 中,模块的初始化函数必须返回PyObject*
给模块 - 即PyMODINIT_FUNC PyInit_spam(void) { return PyModule_Create(&spammodule); }
而在 Python2.X 中,这不是必需的 - 即
PyMODINIT_FUNC initspam(void) { (void) Py_InitModule("spam", SpamMethods); }
所以,我的健全性检查问题是:
- 我的理解正确吗?
- 为什么会做出这样的改变?
现在,我只是在试验非常简单的 Python 的 C 扩展案例。也许如果我做得更多,这个问题的答案会很明显,或者如果我试图将 Python 嵌入到其他东西中......