diff --git a/reference/datamodel.po b/reference/datamodel.po index d9ac935995..221216a966 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -2,13 +2,15 @@ # This file is distributed under the same license as the Python package. # # Translators: +# Adrian Liaw , 2018 +# Kisaragi Hiu , 2024 msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-23 07:52+0800\n" -"PO-Revision-Date: 2018-05-23 16:17+0000\n" -"Last-Translator: Adrian Liaw \n" +"POT-Creation-Date: 2024-06-27 00:03+0000\n" +"PO-Revision-Date: 2024-09-24 19:03+0900\n" +"Last-Translator: Kisaragi Hiu \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" "Language: zh_TW\n" @@ -16,6 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Lokalize 24.08.1\n" #: ../../reference/datamodel.rst:6 msgid "Data model" @@ -23,7 +26,7 @@ msgstr "資料模型" #: ../../reference/datamodel.rst:12 msgid "Objects, values and types" -msgstr "" +msgstr "物件、數值和型別" #: ../../reference/datamodel.rst:18 msgid "" @@ -32,6 +35,9 @@ msgid "" "sense, and in conformance to Von Neumann's model of a \"stored program " "computer\", code is also represented by objects.)" msgstr "" +":dfn:`物件` 是 Python 為資料的抽象表示方式。一個 Python 程式當中的所有資料皆" +"由物件或物件之間的關係來呈現。(某種意義上,同時符合 Von Neumann 對於「儲存程" +"式型電腦」(\"stored program computer\") 的模型,程式碼也是以物件呈現的。)" #: ../../reference/datamodel.rst:35 msgid "" @@ -41,10 +47,14 @@ msgid "" "objects; the :func:`id` function returns an integer representing its " "identity." msgstr "" +"每個物件都有一個識別性、型別,和數值。物件的\\ *識別性*\\ 在物件建立後永遠不" +"會改變;你也可以把它想成是該物件在記憶體中的位址。:keyword:`is` 運算子會比較" +"兩個物件的識別性是否相同;:func:`id` 函式則會回傳代表一個該物件的識別性的整" +"數。" #: ../../reference/datamodel.rst:42 msgid "For CPython, ``id(x)`` is the memory address where ``x`` is stored." -msgstr "" +msgstr "在 CPython 當中,``id(x)`` 就是 ``x`` 所儲存在的記憶體位址。" #: ../../reference/datamodel.rst:44 msgid "" @@ -54,6 +64,10 @@ msgid "" "an object itself). Like its identity, an object's :dfn:`type` is also " "unchangeable. [#]_" msgstr "" +"一個物件的型別決定了該物件所支援的操作(例如「它有長度嗎?」),也同時定義該" +"型別的物件能夠擁有的數值。:func:`type` 函式會回傳一個物件的型別(而該型別本身" +"也是一個物件)。如同它的識別性,一個物件的型別 (:dfn:`type`) 也是不可變" +"的。\\ [#]_" #: ../../reference/datamodel.rst:50 msgid "" @@ -68,6 +82,13 @@ msgid "" "instance, numbers, strings and tuples are immutable, while dictionaries and " "lists are mutable." msgstr "" +"某些物件的\\ *數值*\\ 可被改變,這種物件稱作「可變的」(*mutable*);建立後數值" +"不能變更的物件則稱作「不可變的」(*immutable*)。(不可變的容器物件中如果包含對" +"於可變物件的參照,則後者的數值改變的時候前者的數值也會跟著一起改變;這種時候" +"該容器仍會被當成是不可變的,因為它包含的物件集合仍然無法變更。因此可變或不可" +"變嚴格說起並不等同於數值是否能被改變,它的定義有其他不明顯的細節。)一個物件" +"是否為可變取決於它的型別;舉例來說,數字、字串和 tuple 是不可變的,而字典與串" +"列則是可變的。" #: ../../reference/datamodel.rst:65 msgid "" @@ -77,6 +98,9 @@ msgid "" "implementation quality how garbage collection is implemented, as long as no " "objects are collected that are still reachable." msgstr "" +"物件永遠不會被明示的摧毀;但當它們變得不再能夠存取的時候可能會被作為垃圾回" +"收。每個實作都能延後垃圾回收或是乾脆忽略它 --- 垃圾回收如何進行完全取決於各個" +"實作,只要沒有被回收的物件仍是可達的。" #: ../../reference/datamodel.rst:73 msgid "" @@ -89,6 +113,11 @@ msgid "" "on immediate finalization of objects when they become unreachable (so you " "should always close files explicitly)." msgstr "" +"CPython 目前使用一種參照計數的方案,並提供可選的循環連結垃圾延遲偵測,這個方" +"案會在大部分物件變得不可存取時馬上回收它們,但不保證能夠回收包含循環參照的垃" +"圾。關於控制循環垃圾回收的資訊請見 :mod:`gc` 模組的說明文件。其他實作的行為不" +"會相同,CPython 也有可能改變,因此請不要仰賴物件在變得不可存取時能夠馬上被最" +"終化(亦即你應該總是明確關閉檔案)。" #: ../../reference/datamodel.rst:82 msgid "" @@ -97,6 +126,9 @@ msgid "" "catching an exception with a :keyword:`try`...\\ :keyword:`except` statement " "may keep objects alive." msgstr "" +"請注意,使用一個實作的追蹤或除錯工具可能會讓原本能夠回收的物件被維持存活。也" +"請注意,使用 :keyword:`try`...\\ :keyword:`except` 陳述式來抓捕例外也可能會讓" +"物件維持存活。" #: ../../reference/datamodel.rst:87 msgid "" @@ -109,6 +141,11 @@ msgid "" "`finally` statement and the :keyword:`with` statement provide convenient " "ways to do this." msgstr "" +"某些物件包含對於「外部」資源的參照,像是開啟的檔案或是視窗。基本上這些資源會" +"在物件被回收時釋放,但因為垃圾回收不保證會發生,這種物件也會提供明確釋放外部" +"資源的方式 --- 通常是 :meth:`!close` method。強烈建議各個程式明確關閉這種物" +"件。:keyword:`try`...\\ :keyword:`finally` 陳述式與 :keyword:`with` 陳述式提" +"供進行明確關閉的方便手段。" #: ../../reference/datamodel.rst:97 msgid "" @@ -121,6 +158,12 @@ msgid "" "implied. So, if an immutable container (like a tuple) contains a reference " "to a mutable object, its value changes if that mutable object is changed." msgstr "" +"某些物件包含對於其他物件的參照;這種物件被叫做「容器」。容器的範例有 tuple、" +"串列與字典。這些參照是容器的數值的一部分。通常當我們提到容器的數值的時候,我" +"們指的是其中包含的物件的數值,而不是它們的識別性;但當我們提到容器是否可變的" +"時候,我們指的是直接包含在其中的物件的識別性。因此,如果一個不可變的容器(像" +"一個 tuple)包含對於可變物件的參照,該可變物件被變更時該容器的數值也會跟著變" +"更。" #: ../../reference/datamodel.rst:106 msgid "" @@ -138,6 +181,15 @@ msgid "" "newly created empty lists. (Note that ``e = f = []`` assigns the *same* " "object to both *e* and *f*.)" msgstr "" +"型別幾乎影響物件行為的所有面向。就連物件識別性的重要性某種程度上也受型別影" +"響:對於不可變的型別,計算新數值的操作可能其實會回傳一個某個相同型別且相同數" +"值的現存物件的參照;對於可變型別這則不會發生。舉例來說,在進行 ``a = 1; b = " +"1`` 之後,*a* 和 *b* 可能會參照同一個物件,也可能不會,取決於所使用的實作。這" +"是因為 :class:`int` 是不可變的型別,因此 ``1`` 的參照可以重複利用。這個行為取" +"決於所使用的實作,因此不應該依賴它,但在進行物件識別性測試的時候還是需要注意" +"有這件事情。而在進行 ``c = []; d = []`` 之後,*c* 和 *d* 則保證會參照兩個不" +"同、獨特、且新建立的空白串列。(請注意,``e = f = []`` 則會將同一個物件同時指" +"派給 *e* 和 *f*。)" #: ../../reference/datamodel.rst:124 msgid "The standard type hierarchy" @@ -163,7 +215,7 @@ msgstr "" #: ../../reference/datamodel.rst:150 ../../reference/datamodel.rst:152 msgid "None" -msgstr "" +msgstr "None" #: ../../reference/datamodel.rst:154 msgid "" @@ -172,6 +224,9 @@ msgid "" "signify the absence of a value in many situations, e.g., it is returned from " "functions that don't explicitly return anything. Its truth value is false." msgstr "" +"這個型別只有一個數值。只有一個物件有這個數值。這個物件由內建名稱 ``None`` 存" +"取。它用來在許多情況下代表數值不存在,例如沒有明確回傳任何東西的函式就會回傳" +"這個物件。它的真值是 false。" #: ../../reference/datamodel.rst:161 ../../reference/datamodel.rst:163 msgid "NotImplemented" @@ -186,6 +241,10 @@ msgid "" "will then try the reflected operation, or some other fallback, depending on " "the operator.) It should not be evaluated in a boolean context." msgstr "" +"這個型別只有一個數值。只有一個物件有這個數值。這個物件由內建名稱 :data:" +"`NotImplemented` 存取。數字方法和 rich comparison 方法應該在沒有為所提供的運" +"算元實作該操作的時候回傳這個數值。(直譯器接下來則會依運算子嘗試反轉的操作或" +"是其他的後備方案。)它不應該在預期布林值的情境中被計算。" #: ../../reference/datamodel.rst:172 msgid "See :ref:`implementing-the-arithmetic-operations` for more details." @@ -197,10 +256,13 @@ msgid "" "it currently evaluates as true, it will emit a :exc:`DeprecationWarning`. It " "will raise a :exc:`TypeError` in a future version of Python." msgstr "" +"在預期布林值的情境中計算 :data:`NotImplemented` 的行為已棄用。雖然目前它會計" +"算為 true,它也會同時發出 :exc:`DeprecationWarning`。從某個未來 Python 版本開" +"始這將會引發 :exc:`TypeError`。" #: ../../reference/datamodel.rst:183 ../../reference/datamodel.rst:184 msgid "Ellipsis" -msgstr "" +msgstr "Ellipsis" #: ../../reference/datamodel.rst:188 msgid "" @@ -208,6 +270,8 @@ msgid "" "This object is accessed through the literal ``...`` or the built-in name " "``Ellipsis``. Its truth value is true." msgstr "" +"這個型別只有一個數值。只有一個物件有這個數值。這個物件由文本 ``...`` 或內建名" +"稱 ``Ellipsis`` 存取。它的真值是 true。" #: ../../reference/datamodel.rst:194 msgid ":class:`numbers.Number`" @@ -406,7 +470,7 @@ msgstr "" #: ../../reference/datamodel.rst:362 msgid "Tuples" -msgstr "" +msgstr "Tuple(元組)" #: ../../reference/datamodel.rst:368 msgid "" @@ -420,7 +484,7 @@ msgstr "" #: ../../reference/datamodel.rst:375 msgid "Bytes" -msgstr "" +msgstr "位元組" #: ../../reference/datamodel.rst:378 msgid "" @@ -433,7 +497,7 @@ msgstr "" #: ../../reference/datamodel.rst:386 msgid "Mutable sequences" -msgstr "" +msgstr "可變序列" #: ../../reference/datamodel.rst:395 msgid "" @@ -465,7 +529,7 @@ msgstr "" #: ../../reference/datamodel.rst:415 msgid "Byte Arrays" -msgstr "" +msgstr "位元組陣列" #: ../../reference/datamodel.rst:418 msgid "" @@ -477,7 +541,7 @@ msgstr "" #: ../../reference/datamodel.rst:425 msgid "Set types" -msgstr "" +msgstr "Set(集合)型別" #: ../../reference/datamodel.rst:431 msgid "" @@ -503,7 +567,7 @@ msgstr "" #: ../../reference/datamodel.rst:446 msgid "Sets" -msgstr "" +msgstr "Set(集合)" #: ../../reference/datamodel.rst:449 msgid "" @@ -514,7 +578,7 @@ msgstr "" #: ../../reference/datamodel.rst:454 msgid "Frozen sets" -msgstr "" +msgstr "Frozen set(凍結集合)" #: ../../reference/datamodel.rst:457 msgid "" @@ -525,7 +589,7 @@ msgstr "" #: ../../reference/datamodel.rst:464 msgid "Mappings" -msgstr "" +msgstr "對映" #: ../../reference/datamodel.rst:471 msgid "" @@ -585,7 +649,7 @@ msgstr "" #: ../../reference/datamodel.rst:517 msgid "Callable types" -msgstr "" +msgstr "可呼叫型別" #: ../../reference/datamodel.rst:525 msgid "" @@ -829,7 +893,7 @@ msgstr "" #: ../../reference/datamodel.rst:741 msgid "Generator functions" -msgstr "" +msgstr "Generator(產生器)函式" #: ../../reference/datamodel.rst:747 msgid "" @@ -846,7 +910,7 @@ msgstr "" #: ../../reference/datamodel.rst:759 msgid "Coroutine functions" -msgstr "" +msgstr "Coroutine(協程)函式" #: ../../reference/datamodel.rst:764 msgid "" @@ -883,7 +947,7 @@ msgstr "" #: ../../reference/datamodel.rst:797 msgid "Built-in functions" -msgstr "" +msgstr "內建函式" #: ../../reference/datamodel.rst:804 msgid "" @@ -892,6 +956,9 @@ msgid "" "standard built-in module). The number and type of the arguments are " "determined by the C function. Special read-only attributes:" msgstr "" +"一個內建函式物件是一個 C 函式的 wrapper。內建函式的範例有 :func:`len` 和 :" +"func:`math.sin`\\ (\\ :mod:`math` 是一個標準的內建模組)。內建函式的引數數量" +"與其型別由其包裝的 C 函式所決定。特殊唯讀屬性:" #: ../../reference/datamodel.rst:809 msgid "" @@ -1081,7 +1148,7 @@ msgstr "" #: ../../reference/datamodel.rst:973 msgid "Special attributes:" -msgstr "" +msgstr "特殊屬性:" #: ../../reference/datamodel.rst:975 msgid ":attr:`~definition.__name__`" @@ -3640,7 +3707,7 @@ msgstr "" #: ../../reference/datamodel.rst:3136 msgid "With Statement Context Managers" -msgstr "" +msgstr "With 陳述式的情境管理器" #: ../../reference/datamodel.rst:3138 msgid ""