Diferencia entre PyMODINIT_FUNC y PyModule_Create

Si estoy entendiendo correctamente,

PyMODINIT_FUNC en Python 2.X ha sido reemplazado porPyModule_Create en Python3.X

Ambos regresanPyObject*Sin embargo, en Python 3.X, la función de inicialización del módulo.DEBE devuelve elPyObject* al módulo - es decir

<code>PyMODINIT_FUNC
PyInit_spam(void)
{
   return PyModule_Create(&spammodule);
}
</code>

mientras que en Python2.X, esto no es necesario, es decir,

<code>PyMODINIT_FUNC
initspam(void)
{
  (void) Py_InitModule("spam", SpamMethods);
}
</code>

Por lo tanto, mis preguntas de comprobación de cordura son:

¿Mi entendimiento es correcto?¿Por qué se hizo este cambio?

En este momento, solo estoy experimentando con casos muy simples de extensiones C de Python. Quizás si estuviera haciendo más, la respuesta a esto sería obvia, o tal vez si estuviera tratando de incrustar Python en otra cosa ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta