- Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathgcsupport.po
233 lines (208 loc) · 11.2 KB
/
gcsupport.po
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2021, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# Freesand Leo <yuqinju@163.com>, 2020
# Makdon <makdon@makdon.me>, 2020
#
#,fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-01 16:06+0000\n"
"PO-Revision-Date: 2020-05-30 11:48+0000\n"
"Last-Translator: Makdon <makdon@makdon.me>, 2020\n"
"Language-Team: Chinese (China) (https://www.transifex.com/python-doc/teams/5390/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#:../../c-api/gcsupport.rst:6
msgid"Supporting Cyclic Garbage Collection"
msgstr"使对象类型支持循环垃圾回收"
#:../../c-api/gcsupport.rst:8
msgid""
"Python's support for detecting and collecting garbage which involves "
"circular references requires support from object types which are "
"\"containers\" for other objects which may also be containers. Types which "
"do not store references to other objects, or which only store references to "
"atomic types (such as numbers or strings), do not need to provide any "
"explicit support for garbage collection."
msgstr""
"Python "
"对循环引用的垃圾检测与回收需要“容器”对象类型的支持,此类型的容器对象中可能包含其它容器对象。不保存其它对象的引用的类型,或者只保存原子类型(如数字或字符串)的引用的类型,不需要显式提供垃圾回收的支持。"
#:../../c-api/gcsupport.rst:15
msgid""
"To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of "
"the type object must include the :const:`Py_TPFLAGS_HAVE_GC` and provide an "
"implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If "
"instances of the type are mutable, a :c:member:`~PyTypeObject.tp_clear` "
"implementation must also be provided."
msgstr""
"若要创建一个容器类,类型对象的 :c:member:`~PyTypeObject.tp_flags` 字段必须包含 "
":const:`Py_TPFLAGS_HAVE_GC` 并提供一个 :c:member:`~PyTypeObject.tp_traverse` "
"处理的实现。如果该类型的实例是可变的,还需要实现 :c:member:`~PyTypeObject.tp_clear` 。"
#:../../c-api/gcsupport.rst:24
msgid""
"Objects with a type with this flag set must conform with the rules "
"documented here. For convenience these objects will be referred to as "
"container objects."
msgstr"设置了此标志位的类型的对象必须符合此处记录的规则。为方便起见,下文把这些对象称为容器对象。"
#:../../c-api/gcsupport.rst:28
msgid"Constructors for container types must conform to two rules:"
msgstr"容器类型的构造函数必须符合两个规则:"
#:../../c-api/gcsupport.rst:30
msgid""
"The memory for the object must be allocated using :c:func:`PyObject_GC_New` "
"or :c:func:`PyObject_GC_NewVar`."
msgstr""
"必须使用 :c:func:`PyObject_GC_New` 或 :c:func:`PyObject_GC_NewVar` 为这些对象分配内存。"
#:../../c-api/gcsupport.rst:33
msgid""
"Once all the fields which may contain references to other containers are "
"initialized, it must call :c:func:`PyObject_GC_Track`."
msgstr"初始化了所有可能包含其他容器的引用的字段后,它必须调用 :c:func:`PyObject_GC_Track` 。"
#:../../c-api/gcsupport.rst:39
msgid""
"Analogous to :c:func:`PyObject_New` but for container objects with the "
":const:`Py_TPFLAGS_HAVE_GC` flag set."
msgstr""
"类似于 :c:func:`PyObject_New` ,适用于设置了 :const:`Py_TPFLAGS_HAVE_GC` 标签的容器对象。"
#:../../c-api/gcsupport.rst:45
msgid""
"Analogous to :c:func:`PyObject_NewVar` but for container objects with the "
":const:`Py_TPFLAGS_HAVE_GC` flag set."
msgstr""
"类似于 :c:func:`PyObject_NewVar` ,适用于设置了 :const:`Py_TPFLAGS_HAVE_GC` 标签的容器对象。"
#:../../c-api/gcsupport.rst:51
msgid""
"Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the "
"resized object or ``NULL`` on failure. *op* must not be tracked by the "
"collector yet."
msgstr""
"为 :c:func:`PyObject_NewVar` 所分配对象重新调整大小。 返回调整大小后的对象或在失败时返回 ``NULL``。 *op* "
"必须尚未被垃圾回收器追踪。"
#:../../c-api/gcsupport.rst:57
msgid""
"Adds the object *op* to the set of container objects tracked by the "
"collector. The collector can run at unexpected times so objects must be "
"valid while being tracked. This should be called once all the fields "
"followed by the :c:member:`~PyTypeObject.tp_traverse` handler become valid, "
"usually near the end of the constructor."
msgstr""
"把对象 *op* 加入到垃圾回收器跟踪的容器对象中。对象在被回收器跟踪时必须保持有效的,因为回收器可能在任何时候开始运行。在 "
":c:member:`~PyTypeObject.tp_traverse` 处理前的所有字段变为有效后,必须调用此函数,通常在靠近构造函数末尾的位置。"
#:../../c-api/gcsupport.rst:64
msgid""
"Similarly, the deallocator for the object must conform to a similar pair of "
"rules:"
msgstr"同样的,对象的释放器必须符合两个类似的规则:"
#:../../c-api/gcsupport.rst:67
msgid""
"Before fields which refer to other containers are invalidated, "
":c:func:`PyObject_GC_UnTrack` must be called."
msgstr"在引用其它容器的字段失效前,必须调用 :c:func:`PyObject_GC_UnTrack` 。"
#:../../c-api/gcsupport.rst:70
msgid""
"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`."
msgstr"必须使用 :c:func:`PyObject_GC_Del` 释放对象的内存。"
#:../../c-api/gcsupport.rst:75
msgid""
"Releases memory allocated to an object using :c:func:`PyObject_GC_New` or "
":c:func:`PyObject_GC_NewVar`."
msgstr""
"释放对象的内存,该对象初始化时由 :c:func:`PyObject_GC_New` 或 :c:func:`PyObject_GC_NewVar` "
"分配内存。"
#:../../c-api/gcsupport.rst:81
msgid""
"Remove the object *op* from the set of container objects tracked by the "
"collector. Note that :c:func:`PyObject_GC_Track` can be called again on "
"this object to add it back to the set of tracked objects. The deallocator "
"(:c:member:`~PyTypeObject.tp_dealloc` handler) should call this for the "
"object before any of the fields used by the "
":c:member:`~PyTypeObject.tp_traverse` handler become invalid."
msgstr""
"从回收器跟踪的容器对象集合中移除 *op* 对象。 请注意可以在此对象上再次调用 :c:func:`PyObject_GC_Track` "
"以将其加回到被跟踪对象集合。 释放器 (:c:member:`~PyTypeObject.tp_dealloc` 句柄) 应当在 "
":c:member:`~PyTypeObject.tp_traverse` 句柄所使用的任何字段失效之前为对象调用此函数。"
#:../../c-api/gcsupport.rst:90
msgid""
"The :c:func:`_PyObject_GC_TRACK` and :c:func:`_PyObject_GC_UNTRACK` macros "
"have been removed from the public C API."
msgstr""
":c:func:`_PyObject_GC_TRACK` 和 :c:func:`_PyObject_GC_UNTRACK` 宏已从公有 C API "
"中移除。"
#:../../c-api/gcsupport.rst:93
msgid""
"The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function "
"parameter of this type:"
msgstr":c:member:`~PyTypeObject.tp_traverse` 处理接收以下类型的函数形参。"
#:../../c-api/gcsupport.rst:98
msgid""
"Type of the visitor function passed to the "
":c:member:`~PyTypeObject.tp_traverse` handler. The function should be called"
" with an object to traverse as *object* and the third parameter to the "
":c:member:`~PyTypeObject.tp_traverse` handler as *arg*. The Python core "
"uses several visitor functions to implement cyclic garbage detection; it's "
"not expected that users will need to write their own visitor functions."
msgstr""
"传给 :c:member:`~PyTypeObject.tp_traverse` 处理的访问函数的类型。*object* "
"是容器中需要被遍历的一个对象,第三个形参对应于 :c:member:`~PyTypeObject.tp_traverse` 处理的 *arg* "
"。Python核心使用多个访问者函数实现循环引用的垃圾检测,不需要用户自行实现访问者函数。"
#:../../c-api/gcsupport.rst:105
msgid""
"The :c:member:`~PyTypeObject.tp_traverse` handler must have the following "
"type:"
msgstr":c:member:`~PyTypeObject.tp_traverse` 处理必须是以下类型:"
#:../../c-api/gcsupport.rst:110
msgid""
"Traversal function for a container object. Implementations must call the "
"*visit* function for each object directly contained by *self*, with the "
"parameters to *visit* being the contained object and the *arg* value passed "
"to the handler. The *visit* function must not be called with a ``NULL`` "
"object argument. If *visit* returns a non-zero value that value should be "
"returned immediately."
msgstr""
"用于容器对象的遍历函数。 它的实现必须对 *self* 所直接包含的每个对象调用 *visit* 函数,*visit* "
"的形参为所包含对象和传给处理程序的 *arg* 值。 *visit* 函数调用不可附带 ``NULL`` 对象作为参数。 如果 *visit* "
"返回非零值,则该值应当被立即返回。"
#:../../c-api/gcsupport.rst:117
msgid""
"To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a "
":c:func:`Py_VISIT` macro is provided. In order to use this macro, the "
":c:member:`~PyTypeObject.tp_traverse` implementation must name its arguments"
" exactly *visit* and *arg*:"
msgstr""
"为了简化 :c:member:`~PyTypeObject.tp_traverse` 处理的实现,Python提供了一个 "
":c:func:`Py_VISIT` 宏。若要使用这个宏,必须把 :c:member:`~PyTypeObject.tp_traverse` "
"的参数命名为 *visit* 和 *arg* 。"
#:../../c-api/gcsupport.rst:124
msgid""
"If *o* is not ``NULL``, call the *visit* callback, with arguments *o* and "
"*arg*. If *visit* returns a non-zero value, then return it. Using this "
"macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::"
msgstr""
"如果 *o* 不为 ``NULL``,则调用 *visit* 回调函数,附带参数 *o* 和 *arg*。 如果 *visit* "
"返回一个非零值,则返回该值。 使用此宏之后,:c:member:`~PyTypeObject.tp_traverse` 处理程序的形式如下::"
#:../../c-api/gcsupport.rst:137
msgid""
"The :c:member:`~PyTypeObject.tp_clear` handler must be of the "
":c:type:`inquiry` type, or ``NULL`` if the object is immutable."
msgstr""
":c:member:`~PyTypeObject.tp_clear` 处理程序必须为 :c:type:`inquiry` 类型,如果对象不可变则为 "
"``NULL``。"
#:../../c-api/gcsupport.rst:143
msgid""
"Drop references that may have created reference cycles. Immutable objects "
"do not have to define this method since they can never directly create "
"reference cycles. Note that the object must still be valid after calling "
"this method (don't just call :c:func:`Py_DECREF` on a reference). The "
"collector will call this method if it detects that this object is involved "
"in a reference cycle."
msgstr""
"丢弃产生循环引用的引用。不可变对象不需要声明此方法,因为他们不可能直接产生循环引用。需要注意的是,对象在调用此方法后必须仍是有效的(不能对引用只调用 "
":c:func:`Py_DECREF` 方法)。当垃圾回收器检测到该对象在循环引用中时,此方法会被调用。"