1

我正在维护一个使用 Python C API 构建为 Python 扩展的 Python 类型。我的问题是关于这个“NamedArray”对象的生命周期。基本上我的测试代码如下所示:

    def test_init_from_constructor(self):
        """

        :return:
        """
        n = NamedArray((2, 3))
        self.assertIsInstance(n, NamedArray)
        self.assertEqual(2, sys.getrefcount(n))

我的问题是新实例化的 NamedArray 对象的引用计数为 2,但我希望它为 1。另一个引用来自哪里?

4

1 回答 1

5

这记录在sys.getrefcount

sys.getrefcount(object)

返回对象的引用计数。返回的计数通常比您预期的高一,因为它包含(临时)引用作为 getrefcount() 的参数

于 2021-09-29T12:16:08.160 回答