2009-12-23 5 views

답변

5

발견! type 객체의 tp_dict 요소를 설정하고 각각의 정적 변수에 대해 항목을 추가하여 채우는 것입니다. 다음 C 코드는 위의 Python 코드와 동일한 정적 변수를 만듭니다.

PyTypeObject type; 
// ...other initialisation... 
type.tp_dict = PyDict_New(); 
PyDict_SetItemString(type.tp_dict, "bar", PyInt_FromLong(1)); 
2

적절한 플래그를 사용하여 해당 소스 코드를 Py_CompileString으로 전달할 수 있습니다.

이미 클래스가있는 경우 PyObject_SetAttr을 사용할 수 있습니다.

+0

감사합니다. 그것은 약간의 로터리 방법으로 보이지만, 클래스를위한 PyModule_AddIntConstant와 비슷한 것이 있습니까? – Vil

+0

죄송합니다. 답변을 업데이트 한 것으로 나타났습니다. 도움에 다시 한번 감사드립니다. PyObject_SetAttr을 사용해 보았습니다.하지만 호출 할 때마다 "내장/확장 유형 X의 속성을 설정할 수 없습니다"라는 메시지가있는 TypeError가 나타납니다 (여기서 X는 내 유형 이름 임). 내가 잘못된 것을하고 있습니까? 아니면 단순히 유형 객체에서 작동하지 않습니까? – Vil

+0

코드를 붙여 넣어야합니까? – joeforker

관련 문제