gpt4 book ai didi

Python C API,tp_new 函数没有被调用

转载 作者:行者123 更新时间:2023-12-01 03:32:20 24 4
gpt4 key购买 nike

我正在使用类型对象开发一种新的 Python 数据类型。我使用“Python 2.7.12 的定义新类型页面”作为指南,并且能够根据我的特定需求调整该页面上的示例。我能够创建新的数据类型并将其添加到 Python 模块中。当我从 Python 运行东西时,我可以创建一个像这样的新对象。

x = MyNewType()

在这种情况下,我的 tp_new 函数被调用,我能够按照我想要的方式填充默认数据项。但是,如果我尝试通过调用 PyObject_New() 在 C++ 中执行相同的操作,我的 tp_new 函数不会被调用。作为解决方法,我可以毫无问题地对每个数据成员调用 PyObject_SetAttrString() 。我的 tp_init 函数也存在同样的问题,调用 PyObject_Init() 不会导致我的 tp_init 函数被调用。我花了一天的大部分时间试图找到这件事,但没有运气。任何帮助将不胜感激。

最佳答案

最好的方法是call类对象,就像 Python 本身一样。

信用:我刚刚从 this 了解到它回答。

关于Python C API,tp_new 函数没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40752072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com