Se ho la comprensione correttamente,Differenza tra PyMODINIT_FUNC e PyModule_Create
- PyMODINIT_FUNC in Python 2.X è stato sostituito da
PyModule_Create
in Python3.X Entrambi restituiscono
PyObject*
, tuttavia, in Python 3. X, funzione di inizializzazione del modulo MUST ritornoPyObject*
al modulo - vale a direPyMODINIT_FUNC PyInit_spam(void) { return PyModule_Create(&spammodule); }
mentre in python2.X, questo non è necessario - vale a dire
PyMODINIT_FUNC initspam(void) { (void) Py_InitModule("spam", SpamMethods); }
Quindi, la mia sanità mentale domande di controllo sono:
- è la mia comprensione corretta?
- Perché è stata apportata questa modifica?
Al momento, sto solo sperimentando casi molto semplici di estensioni C di Python. Forse, se fossi fare di più, la risposta a questo sarebbe ovvio, o forse se stessi cercando di incorporare Python in qualcosa d'altro ....