나는 최근 함수의 반환 형식이 the documentation에 PyObject
로 지정 된 일부 파이썬 코드를 가로 질러왔다. PyObject
은 무엇입니까?
자세한 버전
내가 생각하지 않는 C/C++ 프로그래머,하지만 위의 링크 된 문서에 PyObject
으로 실행했을 때, 구글은 PyObject
파이썬/C API를 사용하여 정의 된 파이썬 객체임을 가르쳐 . 구체적으로, API documentation은 다음과 같이 PyObject를 정의합니다.
모든 객체 유형은이 유형의 확장입니다. 이것은 에 객체로의 포인터를 처리하는 데 필요한 정보가 포함 된 유형입니다. 을 객체로 사용합니다. 일반적인 "릴리스"빌드에서는 개체의 참조 횟수와 해당 유형 개체에 대한 포인터 만 포함합니다. PyObject_HEAD 매크로의 확장으로 정의 된 필드에 해당합니다.
솔직히, 나는 이것을 완전히 이해하지 못하는, 또는 내 기본적인 질문에 대한 대답 여부,하지만 그것은 나를 그냥 파이썬 객체, 마침표 등의 PyObject
생각하는 것이 분명 잘못된 생각하지 않습니다. 반면 기술적으로는 PyObject
으로 계산되는 유형은 Python/C API를 사용하여 표준 Python의 확장으로 만들어야합니다. 예를 들어, 정수는 PyObject
입니까? 파이썬에서 만질 수있는 모든 값이 목록, 사전, 소켓, 파일, 정수, 문자열, 함수, 클래스를 포함 C.에 PyObject
입니다
http://docs.scipy.org/doc/numpy/reference/c-api.types-and-structures.html
예를 들어 파이썬 문자열의 C 정의에서 PyObject C 유형을 사용하는 방법에 대한 아이디어를 얻을 수 있습니다. https://github.com/python-git/python/blob/master/Include/stringobject.h – Jivan
또한 내가 아는 한, 파이썬은 C++가 아닌 순수한 C 언어입니다. – Jivan
@ Jivan 확장이 둘 중 하나와 함께 작동 할 수 있다고 생각했지만, 틀린 경우 C++ 태그를 제거 할 수 있습니다 ... – neuronet