Jeśli mam zrozumienie poprawnie,Różnica między PyMODINIT_FUNC i PyModule_Create
- PyMODINIT_FUNC w Pythona 2.X został zastąpiony przez
PyModule_Create
w Python3.X Zarówno powrócić
PyObject*
jednak w Pythonie 3. X, funkcja inicjalizacji modułu MUST zwrotnyPyObject*
do modułu - tjPyMODINIT_FUNC PyInit_spam(void) { return PyModule_Create(&spammodule); }
natomiast w Python2.X, nie jest to konieczne - to znaczy
PyMODINIT_FUNC initspam(void) { (void) Py_InitModule("spam", SpamMethods); }
Więc moje Sanity pytań sprawdzających są:
- Czy moje rozumienie jest poprawne?
- Dlaczego wprowadzono tę zmianę?
Teraz eksperymentuję tylko z bardzo prostymi przypadkami rozszerzeń C w Pythonie. Może gdybym robią więcej, odpowiedź na to byłoby oczywiste, a może gdybym próbował osadzić Python w coś innego ....