Что такое PyObject в Python?
короткая версия
недавно я столкнулся с некоторым кодом Python, в котором тип возврата для функции был указан как PyObject
на документация. Что такое PyObject
?
Полная версия
Я не программист на C / C++, но когда я столкнулся с PyObject
в документации, связанной выше, Google научил меня, что PyObject
- Это объект Python, определенный с помощью API Python/C. В частности, документация по API определяет PyObject следующим образом:
все типы объектов являются расширениями этого типа. Это тип, который содержит информацию, необходимую Python для обработки указателя на объект в качестве объекта. В обычной сборке" release " она содержит только счетчик ссылок на объект и указатель на соответствующий тип объект. Он соответствует полям, определенным расширением Макрос PyObject_HEAD.
откровенно, Я не совсем понимаю это, или он отвечает на мой основной вопрос, но это не заставляет меня думать, что очевидно неправильно просто думать о PyObject
как объект Python, полная остановка. С другой стороны, возможно, технически считать PyObject
тип должен быть создан как расширение для стандартного Python с использованием API Python/C. Например, является целым числом a PyObject
?
потенциально соответствующих ссылки
http://docs.scipy.org/doc/numpy/reference/c-api.types-and-structures.html
2 ответов
каждый стоимостью вы можете в Python-это PyObject
В C. Это включает в себя списки, словари, сокеты, файлы, целые числа, строки, функции, классы, вы называете его. Если вы можете коснуться его в Python, это PyObject
В С.
A PyObject
на самом деле это просто объект Python на уровне C. И поскольку целые числа в Python являются объектами, они также PyObject
s. Не имеет значения, было ли это написано на Python или на C, это PyObject
на уровне C независимо от.