@@ -34,11 +34,11 @@ msgstr "我可以在 C 中建立自己的函式嗎?"
34
34
#: ../../faq/extending.rst:18
35
35
msgid ""
36
36
"Yes, you can create built-in modules containing functions, variables, "
37
- "exceptions and even new types in C. This is explained in thedocument :ref: "
38
- "`extending-index`."
37
+ "exceptions and even new types in C. This is explained in the "
38
+ "document :ref: `extending-index`."
39
39
msgstr ""
40
- "是的,你可以在 C 中建立包含函式、變數、例外甚至新型別的內建模組,:ref: "
41
- "`extending-index` 文件中有相關說明。"
40
+ "是的,你可以在 C 中建立包含函式、變數、例外甚至新型別的內建模 "
41
+ "組,:ref: `extending-index` 文件中有相關說明。"
42
42
43
43
#: ../../faq/extending.rst:22
44
44
msgid "Most intermediate or advanced Python books will also cover this topic."
@@ -73,16 +73,16 @@ msgstr "要編寫你自己的 C 擴充有許多替代方法,取決於你要執
73
73
#: ../../faq/extending.rst:44
74
74
#, fuzzy
75
75
msgid ""
76
- "`Cython <https://cython.org>`_ and its relative `Pyrex <https://www.csse. "
77
- "canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ are compilers that accept a "
78
- "slightly modified form of Python and generate the corresponding C code. "
79
- "Cython and Pyrex make it possible to write an extension without having to "
80
- "learn Python's C API."
76
+ "`Cython <https://cython.org>`_ and its relative `Pyrex <https://"
77
+ "www.csse. canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ are compilers that "
78
+ "accept a slightly modified form of Python and generate the corresponding C "
79
+ "code. Cython and Pyrex make it possible to write an extension without "
80
+ "having to learn Python's C API."
81
81
msgstr ""
82
- "`Cython <https://cython.org>`_ 及其相關的 `Pyrex <https://www.csse. "
83
- "canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ 是接受稍微修改 Python形式並生成 "
84
- "相應的 C 程式碼。 Cython 和 Pyrex 使編寫擴充程式成為可能,而無需學習 Python "
85
- "的 C API。"
82
+ "`Cython <https://cython.org>`_ 及其相關的 `Pyrex <https://"
83
+ "www.csse. canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ 是接受稍微修改 Python "
84
+ "形式並生成相應的 C 程式碼。 Cython 和 Pyrex 使編寫擴充程式成為可能,而無需學 "
85
+ "習 Python 的 C API。"
86
86
87
87
#: ../../faq/extending.rst:50
88
88
#, fuzzy
@@ -111,15 +111,15 @@ msgid ""
111
111
"The highest-level function to do this is :c:func:`PyRun_SimpleString` which "
112
112
"takes a single string argument to be executed in the context of the module "
113
113
"``__main__`` and returns ``0`` for success and ``-1`` when an exception "
114
- "occurred (including :exc:`SyntaxError`). If you want more control,use :c: "
115
- "func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in "
116
- "``Python/pythonrun.c``."
114
+ "occurred (including :exc:`SyntaxError`). If you want more control, "
115
+ "use :c: func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` "
116
+ "in ``Python/pythonrun.c``."
117
117
msgstr ""
118
118
"執行此操作的最高級別函式是 :c:func:`PyRun_SimpleString`,它採用單個字串引數在"
119
119
"模組 ``__main__`` 的上下文中執行,並回傳 ``0`` 表示成功,``- 1`` 發生例外時"
120
- "(包括 :exc:`SyntaxError`)。如果你想要更多的控制,使用 :c:func: "
121
- "`PyRun_String`;在 ``Python/pythonrun.c``中查看 :c:func: "
122
- "`PyRun_SimpleString` 的原始碼。"
120
+ "(包括 :exc:`SyntaxError`)。如果你想要更多的控制,使 "
121
+ "用 :c:func: `PyRun_String`;在 ``Python/pythonrun.c``中查 "
122
+ "看 :c:func: `PyRun_SimpleString` 的原始碼。"
123
123
124
124
#: ../../faq/extending.rst:72
125
125
#, fuzzy
@@ -133,8 +133,8 @@ msgid ""
133
133
"start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it "
134
134
"and returns its value."
135
135
msgstr ""
136
- "呼叫上一個問題中的函式 :c:func:`PyRun_String`開始符號 :c:data: "
137
- "`Py_eval_input`;它解析一個運算式,對其求值並回傳它的值。"
136
+ "呼叫上一個問題中的函式 :c:func:`PyRun_String`開始符 "
137
+ "號 :c:data: `Py_eval_input`;它解析一個運算式,對其求值並回傳它的值。"
138
138
139
139
#: ../../faq/extending.rst:80
140
140
msgid "How do I extract C values from a Python object?"
@@ -145,33 +145,34 @@ msgstr "如何從 Python 物件中提取 C 值?"
145
145
msgid ""
146
146
"That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` "
147
147
"returns its length and :c:func:`PyTuple_GetItem` returns the item at a "
148
- "specified index. Lists have similar functions, :c:func:`PyList_Size`and :c: "
149
- "func:`PyList_GetItem`."
148
+ "specified index. Lists have similar functions, :c:func:`PyList_Size` "
149
+ "and :c: func:`PyList_GetItem`."
150
150
msgstr ""
151
- "這取決於物件的型別。如果它是一個元組,:c:func:`PyTuple_Size`回傳它的長度,: "
152
- "c:func:`PyTuple_GetItem` 回傳指定索引的項目。列表具有類似的函式:c:func: "
153
- "`PyList_Size` 和 :c:func:`PyList_GetItem`。"
151
+ "這取決於物件的型別。如果它是一個元組,:c:func:`PyTuple_Size`回傳它的長 "
152
+ "度,: c:func:`PyTuple_GetItem` 回傳指定索引的項目。列表具有類似的函式:"
153
+ "c:func: `PyList_Size` 和 :c:func:`PyList_GetItem`。"
154
154
155
155
#: ../../faq/extending.rst:87
156
156
#, fuzzy
157
157
msgid ""
158
- "For bytes, :c:func:`PyBytes_Size` returns its lengthand :c:func: "
159
- "`PyBytes_AsStringAndSize` provides a pointer to its value and its length. "
160
- "Note that Python bytes objects may contain null bytes soC's :c:func:`! "
161
- "strlen` should not be used."
158
+ "For bytes, :c:func:`PyBytes_Size` returns its length "
159
+ "and :c:func: `PyBytes_AsStringAndSize` provides a pointer to its value and "
160
+ "its length. Note that Python bytes objects may contain null bytes so "
161
+ "C's :c:func:`! strlen` should not be used."
162
162
msgstr ""
163
- "對於位元組,:c:func:`PyBytes_Size`回傳它的長度,:c:func: "
164
- "`PyBytes_AsStringAndSize` 提供指向它的值和長度的指標。請注意,Python 位元組物 "
165
- "件可能包含空位元組 ,因此不應使用 C 的 :c:func:`!strlen`。"
163
+ "對於位元組,:c:func:`PyBytes_Size`回傳它的長 "
164
+ "度,:c:func: `PyBytes_AsStringAndSize` 提供指向它的值和長度的指標。請注意,"
165
+ "Python 位元組物件可能包含空位元組 ,因此不應使用 C 的 :c:func:`!strlen`。"
166
166
167
167
#: ../../faq/extending.rst:92
168
168
msgid ""
169
169
"To test the type of an object, first make sure it isn't ``NULL``, and then "
170
- "use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:"
171
- "`PyList_Check`, etc."
170
+ "use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:`PyList_Check`, "
171
+ "etc."
172
172
msgstr ""
173
- "要測試物件的型別,首先確保它不是 ``NULL``,然後再使用 :c:func:"
174
- "`PyBytes_Check`、:c:func:`PyTuple_Check`、:c:func:`PyList_Check` 等函式。"
173
+ "要測試物件的型別,首先確保它不是 ``NULL``,然後再使"
174
+ "用 :c:func:`PyBytes_Check`、:c:func:`PyTuple_Check`、:c:func:`PyList_Check` "
175
+ "等函式。"
175
176
176
177
#: ../../faq/extending.rst:95
177
178
#, fuzzy
@@ -184,9 +185,10 @@ msgid ""
184
185
"al.) and mappings in the PyMapping APIs."
185
186
msgstr ""
186
187
"還有一個針對 Python 物件的高級 API,它由所謂的「抽象」介面提供——閱讀 "
187
- "``Include/abstract.h`` 了解更多詳細資訊。它允許使用 :c:func:"
188
- "`PySequence_Length`、:c:func:`PySequence_GetItem` 等呼叫以及許多其他有用的協"
189
- "議(例如數字 (:c:func:`PyNumber_Index) ` 等)和 PyMapping API 中的對映。"
188
+ "``Include/abstract.h`` 了解更多詳細資訊。它允許使"
189
+ "用 :c:func:`PySequence_Length`、:c:func:`PySequence_GetItem` 等呼叫以及許多其"
190
+ "他有用的協議(例如數字 (:c:func:`PyNumber_Index) ` 等)和 PyMapping API 中的"
191
+ "對映。"
190
192
191
193
#: ../../faq/extending.rst:104
192
194
msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?"
@@ -229,8 +231,8 @@ msgid ""
229
231
"defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the "
230
232
"return value."
231
233
msgstr ""
232
- "這適用於任何具有方法的物件——無論是內建的還是使用者定義的。你負責最終 :c:func: "
233
- "`Py_DECREF`\\ 'ing 回傳值。"
234
+ "這適用於任何具有方法的物件——無論是內建的還是使用者定義的。你負責最 "
235
+ "終 :c:func: `Py_DECREF`\\ 'ing 回傳值。"
234
236
235
237
#: ../../faq/extending.rst:124
236
238
msgid ""
@@ -277,9 +279,9 @@ msgid ""
277
279
"print_error, or just allow the standard traceback mechanism to work. Then, "
278
280
"the output will go wherever your ``write()`` method sends it."
279
281
msgstr ""
280
- "在 Python 程式碼中,定義一個支援 ``write()`` 方法的物件。將此物件分配給 : "
281
- "data:`sys.stdout` 和 :data:`sys.stderr`。呼叫 print_error,或者只允許標準的回 "
282
- "溯機制起作用 。然後,輸出將到達你的 ``write()`` 方法發送它的任何地方。"
282
+ "在 Python 程式碼中,定義一個支援 ``write()`` 方法的物件。將此物件分配 "
283
+ "給 : data:`sys.stdout` 和 :data:`sys.stderr`。呼叫 print_error,或者只允許標準 "
284
+ "的回溯機制起作用 。然後,輸出將到達你的 ``write()`` 方法發送它的任何地方。"
283
285
284
286
#: ../../faq/extending.rst:149
285
287
msgid "The easiest way to do this is to use the :class:`io.StringIO` class:"
@@ -356,11 +358,11 @@ msgstr "module = PyImport_ImportModule(\"<modulename>\");"
356
358
#: ../../faq/extending.rst:188
357
359
#, fuzzy
358
360
msgid ""
359
- "If the module hasn't been imported yet (i.e. it is not yet presentin :data: "
360
- "`sys.modules`), this initializes the module; otherwise it simply returns the "
361
- "value of ``sys.modules[\" <modulename>\" ]``. Note that it doesn't enter the "
362
- "module into any namespace -- it only ensures it has been initialized and is "
363
- "stored in :data:`sys.modules`."
361
+ "If the module hasn't been imported yet (i.e. it is not yet present "
362
+ "in :data: `sys.modules`), this initializes the module; otherwise it simply "
363
+ "returns the value of ``sys.modules[\" <modulename>\" ]``. Note that it "
364
+ "doesn't enter the module into any namespace -- it only ensures it has been "
365
+ "initialized and is stored in :data:`sys.modules`."
364
366
msgstr ""
365
367
"如果模組還沒有被引入(即它還沒有出現在 :data:`sys.modules` 中),這會初始化模"
366
368
"組;否則它只回傳 ``sys.modules[\" <modulename>\" ]`` 的值。請注意,它不會將模組"
@@ -516,9 +518,9 @@ msgid ""
516
518
"``Parser/myreadline.c`` for more hints."
517
519
msgstr ""
518
520
"在 C 中執行此操作的最簡單方法是呼叫:c:func:`PyRun_InteractiveLoop`(可能在單"
519
- "獨的執行緒中)並讓 Python 直譯器為你處理輸入。你還可以將 :c:func: "
520
- "`PyOS_ReadlineFunctionPointer` 設定為指向你的自定義輸入函式。有關更多提示,請 "
521
- "參閱 ``Modules/readline.c`` 和``Parser/myreadline.c``。"
521
+ "獨的執行緒中)並讓 Python 直譯器為你處理輸入。你還可以 "
522
+ "將 :c:func: `PyOS_ReadlineFunctionPointer` 設定為指向你的自定義輸入函式。有關 "
523
+ "更多提示,請參閱 ``Modules/readline.c`` 和``Parser/myreadline.c``。"
522
524
523
525
#: ../../faq/extending.rst:275
524
526
msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?"
@@ -541,22 +543,22 @@ msgid ""
541
543
"Can I create an object class with some methods implemented in C and others "
542
544
"in Python (e.g. through inheritance)?"
543
545
msgstr ""
544
- "我可以用一些用 C 實作的方法和用 Python 實作的其他方法(例如通過繼承 )建立一個"
546
+ "我可以用一些用 C 實作的方法和用 Python 實作的其他方法(例如透過繼承 )建立一個"
545
547
"物件類別嗎?"
546
548
547
549
#: ../../faq/extending.rst:285
548
550
msgid ""
549
- "Yes, you can inherit from built-in classes suchas :class:`int`, :class: "
550
- "`list`, :class:`dict`, etc."
551
+ "Yes, you can inherit from built-in classes such "
552
+ "as :class:`int`, :class: `list`, :class:`dict`, etc."
551
553
msgstr ""
552
554
"是的,你可以繼承內建類別,例如 :class:`int`、:class:`list`、:class:`dict` "
553
555
"等。"
554
556
555
557
#: ../../faq/extending.rst:288
556
558
msgid ""
557
- "The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index. "
558
- "html) provides a way of doing this from C++ (i.e. you can inherit from an "
559
- "extension class written in C++ using the BPL)."
559
+ "The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/"
560
+ "index. html) provides a way of doing this from C++ (i.e. you can inherit from "
561
+ "an extension class written in C++ using the BPL)."
560
562
msgstr ""
561
563
"Boost Python 函式庫(BPL,https://www.boost.org/libs/python/doc/index.html)"
562
564
"提供了一種從 C++ 執行此操作的方法(即你可以使用 BPL 來繼承用 C++ 編寫的擴充類"