File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -338,6 +338,9 @@ msgid ""
338338" (There's an obvious problem with objects that reference each other here; "
339339"for now, the solution is \" don't do that.\" )"
340340msgstr ""
341+ "引用计数非常重要,因为现代计算机内存(通常十分)有限;它计算有多少不同的地方引用同一个对象。这样的地方可以是某个对象,或者是某个全局(或静态)C "
342+ "变量,亦或是某个 C 函数的局部变量。当一个对象的引用计数变为 "
343+ "0,释放该对象。如果这个已释放的对象包含其它对象的引用计数,则递减这些对象的引用计数。如果这些对象的引用计数减少为零,则可以依次释放这些对象,依此类推。(这里有一个很明显的问题——对象之间相互引用;目前,解决方案是“不要那样做”。)"
341344
342345#: ../../c-api/intro.rst:245
343346msgid ""
@@ -356,6 +359,11 @@ msgid ""
356359"memory (assuming ``sizeof(Py_ssize_t) >= sizeof(void*)``). Thus, the "
357360"reference count increment is a simple operation."
358361msgstr ""
362+ "总是显式操作引用计数。通常的方法是使用宏 :c:func:`Py_INCREF` 来增加一个对象的引用计数,使用宏 "
363+ ":c:func:`Py_DECREF` 来减少一个对象的引用计数。宏 :c:func:`Py_DECREF` "
364+ "必须检查引用计数是否为零,然后调用对象的释放器, 因此它比 incref "
365+ "宏复杂得多。释放器是一个包含在对象类型结构中的函数指针。如果对象是复合对象类型(例如列表),则类型特定的释放器负责递减包含在对象中的其他对象的引用计数,并执行所需的终结。引用计数不会溢出,至少用与虚拟内存中不同内存位置一样多的位用于保存引用计数(即"
366+ " ``sizeof(Py_ssize_t) >= sizeof(void*)`` )。因此,引用计数递增是一个简单的操作。"
359367
360368#: ../../c-api/intro.rst:259
361369msgid ""
You can’t perform that action at this time.
0 commit comments