为什么我的 Python 扩展类型有两个引用计数而不是一个?

Why does my Python Extension type have two ref counts rather than one?

我正在维护一个 Python 类型,它是使用 Python C API 作为 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。其他引用来自哪里?

这记录在 sys.getrefcount

sys.getrefcount(object)

Return the reference count of the object. The count returned is generally one higher than you might expect, because it includes the (temporary) reference as an argument to getrefcount()