PyList_SetItem vs.PyList_SetItem

2024-05-19 03:02:14 发布

您现在位置:Python中文网/ 问答频道 /正文

据我所知,PyList_SetItem和PyList_SetItem之间的区别是PyList_SetItem会降低它覆盖的列表项的引用计数,而PyList_SetItem不会。在

有什么理由不让我一直使用PyList_SetItem?或者,如果我使用PyList_SetItem初始化列表中的索引位置,我会遇到麻烦吗?在


Tags: 列表计数pylist我会理由区别setitem
1条回答
网友
1楼 · 发布于 2024-05-19 03:02:14

PyList_SET_ITEM是一个不安全的宏,它基本上不进行任何绑定检查就将对象粘贴到列表的内部指针数组中。如果任何非NULL位于列表的第i位置,则会发生引用泄漏。PyList_SET_ITEM窃取对列表中的对象的引用。PyList_SetItem也窃取引用,但它检查边界并减少可能在i位置的任何内容。经验法则是使用PyList_SET_ITEM初始化刚刚创建的列表,否则使用PyList_SetItem。在任何地方使用PyList_SetItem也是完全安全的;PyList_SET_ITEM基本上是一种速度攻击。在

相关问题 更多 >

    热门问题