Python C -API-функции, которые заимствуют и крадут ссылки

Стандартное соглашение в Python C -API заключается в том, что

  • функции не крадут ссылки из входных аргументов (которые являются объектами)

  • возвращают значения и выходные аргументы (которые являются объектами )имеют ссылку

Большинство функций в Python C -API следуют этому соглашению. Однако есть некоторые исключения. Я столкнулся со следующими:

функциями, которые крадут ссылку из входного аргумента

PyModule_AddObject

функциями с возвращаемыми значениями или выходными аргументами, которые заимствуют ссылку

PyErr_Occurred
PyTuple_GetItem
PyTuple_GETITEM
PyDict_GetItem
PyDict_GetItemString
PyDict_Next

есть ли где-нибудь исчерпывающий список таких функций? Такой список будет полезен при написании модулей расширения Python.

12
задан Johan Råde 20 April 2012 в 17:34
поделиться