Warum ReferenceCount hier erhöhen?
Verfasst: Donnerstag 19. November 2009, 23:10
Hi,
ich habe mal den Beispielcode aus dem Python-Tutorial hier genommen. Kann mir jemand erklären wieso vor dem hinzufügen des Typs zum Modul ein Py_INCREF(&noddy_NoddyType); durchgeführt wird? Ist das dazu da, dass wenn man eine Instanz des Typens/Klasse erzeugt hat und jemand dann das Modul entfernt, noch immer eine Referenz auf den Typen existiert oder was soll das??
Gruß
Jonny
ich habe mal den Beispielcode aus dem Python-Tutorial hier genommen. Kann mir jemand erklären wieso vor dem hinzufügen des Typs zum Modul ein Py_INCREF(&noddy_NoddyType); durchgeführt wird? Ist das dazu da, dass wenn man eine Instanz des Typens/Klasse erzeugt hat und jemand dann das Modul entfernt, noch immer eine Referenz auf den Typen existiert oder was soll das??
Gruß
Jonny
Code: Alles auswählen
PyMODINIT_FUNC
PyInit_noddy(void)
{
PyObject* m;
noddy_NoddyType.tp_new = PyType_GenericNew;
if (PyType_Ready(&noddy_NoddyType) < 0)
return NULL;
m = PyModule_Create(&noddymodule);
if (m == NULL)
return NULL;
Py_INCREF(&noddy_NoddyType);
PyModule_AddObject(m, "Noddy", (PyObject *)&noddy_NoddyType);
return m;
}