Стандартное соглашение в Python C -API заключается в том, что
функции не крадут ссылки из входных аргументов (которые являются объектами)
возвращают значения и выходные аргументы (которые являются объектами )имеют ссылку
Большинство функций в Python C -API следуют этому соглашению. Однако есть некоторые исключения. Я столкнулся со следующими:
функциями, которые крадут ссылку из входного аргумента
PyModule_AddObject
функциями с возвращаемыми значениями или выходными аргументами, которые заимствуют ссылку
PyErr_Occurred
PyTuple_GetItem
PyTuple_GETITEM
PyDict_GetItem
PyDict_GetItemString
PyDict_Next
есть ли где-нибудь исчерпывающий список таких функций? Такой список будет полезен при написании модулей расширения Python.