1
我正在使用類型對象開發新的Python數據類型。我使用了「爲Python 2.7.12定義新類型頁面」作爲指導,並能夠根據我的特定需求調整該頁面上的示例。我能夠創建我的新數據類型並將其添加到Python模塊。當我運行Python的東西時,我可以創建一個像這樣的新對象。Python C API,tp_new函數未被調用
x = MyNewType()
在這種情況下,我的tp_new
函數被調用,我能夠填補默認的數據項就是我想要的。但是,如果我嘗試通過調用PyObject_New()
來嘗試在C++中執行相同的操作,則不會調用我的tp_new
函數。作爲解決方法,我可以在每個數據成員上撥打PyObject_SetAttrString()
,而不會造成任何問題。我看到與我的tp_init
函數相同的問題,其中調用PyObject_Init()
不會導致我的tp_init
函數被調用。我花了一天的好時間試圖跟蹤這件事情,沒有運氣。任何幫助,將不勝感激。