Die Standardkonvention in dem Python C-API ist, dassPython C-API-Funktionen, die Referenzen borgen und stehlen
Funktionen nicht stehlen Referenzen von Eingangsargumenten (die Objekte)
return Werte und Ausgabeargumente (das sind Objekte) besitzen eine Referenz
Die meisten Funktionen in der Python C-API folgen dieser Konvention. Es gibt jedoch einige Ausnahmen. Ich habe über die folgenden kommen:
Funktionen, die einen Verweis aus einem Eingang Argumente
PyModule_AddObject
Funktionen mit Rückgabewerten oder Ausgabeargumenten stehlen, die einen Verweis
PyErr_Occurred
PyTuple_GetItem
PyTuple_GETITEM
PyDict_GetItem
PyDict_GetItemString
PyDict_Next
Ist leihen gibt es eine umfassende Liste solcher Funktionen überall? Eine solche Liste wäre eine nützliche Referenz beim Schreiben von Python-Erweiterungsmodulen.
Dies scheint eine gute Frage für die Python-Entwickler zu sein. – phkahler