gpt4 book ai didi

python - 发生异常时python内存管理的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 03:44:30 25 4
gpt4 key购买 nike

我正在编写自己的 Python 模块,需要一些建议。让我们考虑一个模块中的示例函数:

PyObject* my_func(PyObject *self, PyObject* args)
{
PyObject* returnObj;
try
{
returnObj = my_create_output();
}
catch(const std::exception& ex)
{
PyErr_SetString(PyExc_Exception, ex.what());
returnObj = NULL;
}
return returnObj;
}

my_create_output 函数可以引发不同的异常(也是我自己的异常)。 returnObj 是一个大结构(例如,一个列表),当已经创建一半输出时,my_create_output 函数可能会引发异常。对于这种情况,我应该如何删除 catch block 中分配的对象?

最佳答案

my_create_output 应该处理它在异常情况下创建的所有内容的释放,因为捕获异常的调用者无法访问任何内容。

关于python - 发生异常时python内存管理的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561672/

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