@@ -8,7 +8,7 @@ msgstr ""
88"Project-Id-Version :Python 3.12\n "
99"Report-Msgid-Bugs-To :\n "
1010"POT-Creation-Date :2023-10-11 17:13+0000\n "
11- "PO-Revision-Date :2024-05-08 22:24 +0800\n "
11+ "PO-Revision-Date :2024-05-22 20:58 +0800\n "
1212"Last-Translator :Adrian Liaw <adrianliaw2000@gmail.com>\n "
1313"Language-Team :Chinese - TAIWAN (https://github.com/python/python-docs-zh- "
1414"tw)\n "
@@ -17,7 +17,7 @@ msgstr ""
1717"Content-Type :text/plain; charset=UTF-8\n "
1818"Content-Transfer-Encoding :8bit\n "
1919"Plural-Forms :nplurals=1; plural=0;\n "
20- "X-Generator :Poedit 3.4.1 \n "
20+ "X-Generator :Poedit 3.4.4 \n "
2121
2222#: ../../library/weakref.rst:4
2323msgid ":mod:`weakref` --- Weak references"
@@ -111,8 +111,8 @@ msgid ""
111111"object is collected."
112112msgstr ""
113113":class:`finalize` 提供了一種直接的方法來註冊在物件被垃圾回收時呼叫的清理函"
114- "式。這比在原始弱參照上設定回呼函式更容易使用,因為模組在物件被收集前會自動確 "
115- "保終結函式 (finalizer) 保持存活。"
114+ "式。這比在原始弱參照上設定回呼函式更容易使用,因為模組在物件被回收前會自動確 "
115+ "保最終化器 (finalizer) 保持存活。"
116116
117117#: ../../library/weakref.rst:63
118118msgid ""
@@ -188,11 +188,11 @@ msgid ""
188188"passed as the only parameter to the callback; the referent will no longer be "
189189"available."
190190msgstr ""
191- "傳回對 *object* 的弱參照。如果參照目標仍存活,則可以透過呼叫參照物件來取回原"
191+ "回傳對 *object* 的弱參照。如果參照目標仍存活,則可以透過呼叫參照物件來取回原"
192192"始物件;如果參照目標已不存活,呼叫參照物件將導致 :const:`None` 被回傳。如果 "
193193"*callback* 被提供而非 :const:`None`,且回傳的弱參照物件仍存活,那麼當物件即將"
194- "被終結 (finalize) 時,回呼將被呼叫;弱參照物件將作為唯一的參數傳遞給回呼;參 "
195- "照物件將不再可用 。"
194+ "被最終化 (finalize) 時,回呼將被呼叫;弱參照物件將作為唯一的參數傳遞給回呼;"
195+ "參照物件將不再可用 。"
196196
197197#: ../../library/weakref.rst:108
198198msgid ""
@@ -264,7 +264,7 @@ msgid ""
264264"keys. *callback* is the same as the parameter of the same name to the :func:"
265265"`ref` function."
266266msgstr ""
267- "傳回一個使用弱參照的 *object* 的代理 (proxy)。這支援在大多數情境中使用代理,"
267+ "回傳一個使用弱參照的 *object* 的代理 (proxy)。這支援在大多數情境中使用代理,"
268268"而不需要對弱參照物件明確地取消參照。回傳的物件將具有 ``ProxyType`` 或 "
269269"``CallableProxyType`` 型別,具體取決於 *object* 是否為可呼叫物件。無論參照目"
270270"標如何,代理物件都不是 :term:`hashable`;這避免了與其基本可變物件本質相關的許"
@@ -340,7 +340,7 @@ msgstr ""
340340
341341#: ../../library/weakref.rst:212
342342msgid "Return an iterable of the weak references to the keys."
343- msgstr "傳回對鍵的弱參照的可疊代物件 。"
343+ msgstr "回傳對鍵的弱參照的可疊代物件 。"
344344
345345#: ../../library/weakref.rst:217
346346msgid ""
@@ -363,7 +363,7 @@ msgstr ""
363363
364364#: ../../library/weakref.rst:229
365365msgid "Return an iterable of the weak references to the values."
366- msgstr "傳回對值的弱參照的可疊代物件 。"
366+ msgstr "回傳對值的弱參照的可疊代物件 。"
367367
368368#: ../../library/weakref.rst:234
369369msgid ""
@@ -399,6 +399,9 @@ msgid ""
399399"always survive until the reference object is collected, greatly simplifying "
400400"lifecycle management."
401401msgstr ""
402+ "回傳可呼叫的最終化器物件,此物件在 *obj* 被垃圾回收時會被呼叫。與一般的弱參照"
403+ "不同,最終化器將始終存在,直到參照物件被回收為止,從而大大簡化了生命週期管"
404+ "理。"
402405
403406#: ../../library/weakref.rst:275
404407msgid ""
@@ -407,6 +410,9 @@ msgid ""
407410"finalizer returns the result of evaluating ``func(*arg, **kwargs)``, whereas "
408411"calling a dead finalizer returns :const:`None`."
409412msgstr ""
413+ "最終化器在被呼叫(明確呼叫或在垃圾回收時)之前被視為\\ *存活*,之後它就會\\ *"
414+ "死亡*。呼叫存活的最終化器會回傳 ``func(*arg, **kwargs)`` 的計算結果,而呼叫死"
415+ "亡的最終化器會回傳 :const:`None`。"
410416
411417#: ../../library/weakref.rst:280
412418msgid ""
@@ -415,49 +421,63 @@ msgid ""
415421"handled in the same way as exceptions raised from an object's :meth:`~object."
416422"__del__` method or a weak reference's callback."
417423msgstr ""
424+ "垃圾回收期間最終化器回呼引發的例外會在標準錯誤輸出中顯示,但無法傳播。它們的"
425+ "處理方式與從物件的 :meth:`~object.__del__` 方法或弱參照的回呼引發的例外相同。"
418426
419427#: ../../library/weakref.rst:286
420428msgid ""
421429"When the program exits, each remaining live finalizer is called unless its :"
422430"attr:`atexit` attribute has been set to false. They are called in reverse "
423431"order of creation."
424432msgstr ""
433+ "當程式結束時,除非該最終化器的 :attr:`atexit` 屬性已被設定為 false,否則每個"
434+ "存活的最終化器會被呼叫。它們以與建立相反的順序被呼叫。"
425435
426436#: ../../library/weakref.rst:290
427437msgid ""
428438"A finalizer will never invoke its callback during the later part of the :"
429439"term:`interpreter shutdown` when module globals are liable to have been "
430440"replaced by :const:`None`."
431441msgstr ""
442+ "當模組的 globals 可能被 :const:`None` 取代時,最終化器永遠不會在 :term:"
443+ "`interpreter shutdown` 的後期調用(invoke)其回呼。"
432444
433445#: ../../library/weakref.rst:296
434446msgid ""
435447"If *self* is alive then mark it as dead and return the result of calling "
436448"``func(*args, **kwargs)``. If *self* is dead then return :const:`None`."
437449msgstr ""
450+ "如果 *self* 仍存活,則將其標記為死亡並回傳呼叫 ``func(*args, **kwargs)`` 的結"
451+ "果。如果 *self* 已死亡,則回傳 :const:`None`。"
438452
439453#: ../../library/weakref.rst:302
440454msgid ""
441455"If *self* is alive then mark it as dead and return the tuple ``(obj, func, "
442456"args, kwargs)``. If *self* is dead then return :const:`None`."
443457msgstr ""
458+ "如果 *self* 仍存活,則將其標記為死亡並回傳元組 ``(obj, func, args, "
459+ "kwargs)``。如果 *self* 已死亡,則回傳 :const:`None`。"
444460
445461#: ../../library/weakref.rst:308
446462msgid ""
447463"If *self* is alive then return the tuple ``(obj, func, args, kwargs)``. If "
448464"*self* is dead then return :const:`None`."
449465msgstr ""
466+ "如果 *self* 仍存活,則回傳元組 ``(obj, func, args, kwargs)``。如果 *self* 已"
467+ "死亡,則回傳 :const:`None`。"
450468
451469#: ../../library/weakref.rst:313
452470msgid "Property which is true if the finalizer is alive, false otherwise."
453- msgstr ""
471+ msgstr "如果最終化器仍存活,則屬性為 true,否則為 false。 "
454472
455473#: ../../library/weakref.rst:317
456474msgid ""
457475"A writable boolean property which by default is true. When the program "
458476"exits, it calls all remaining live finalizers for which :attr:`.atexit` is "
459477"true. They are called in reverse order of creation."
460478msgstr ""
479+ "一個可寫的布林屬性,預設為 true。當程式結束時,它會呼叫 :attr:`.atexit` 為 "
480+ "true 的所有剩餘且仍存活的最終化器。它們以與建立相反的順序被呼叫。"
461481
462482#: ../../library/weakref.rst:324
463483msgid ""
@@ -466,59 +486,67 @@ msgid ""
466486"will never be garbage collected. In particular, *func* should not be a "
467487"bound method of *obj*."
468488msgstr ""
489+ "確保 *func*、*args* 和 *kwargs* 不直接或間接擁有對 *obj* 的任何參照非常重要,"
490+ "否則 *obj* 將永遠不會被垃圾回收。尤其 *func* 不應該是 *obj* 的繫結方法。"
469491
470492#: ../../library/weakref.rst:334
471493msgid "The type object for weak references objects."
472- msgstr ""
494+ msgstr "弱參照物件的型別物件。 "
473495
474496#: ../../library/weakref.rst:339
475497msgid "The type object for proxies of objects which are not callable."
476- msgstr ""
498+ msgstr "非可呼叫物件的代理的型別物件。 "
477499
478500#: ../../library/weakref.rst:344
479501msgid "The type object for proxies of callable objects."
480- msgstr ""
502+ msgstr "可呼叫物件的代理的型別物件。 "
481503
482504#: ../../library/weakref.rst:349
483505msgid ""
484506"Sequence containing all the type objects for proxies. This can make it "
485507"simpler to test if an object is a proxy without being dependent on naming "
486508"both proxy types."
487509msgstr ""
510+ "包含代理的所有型別物件的序列。這可以讓測試物件是否為代理變得更簡單,而無需依"
511+ "賴命名兩種代理型別。"
488512
489513#: ../../library/weakref.rst:356
490514msgid ":pep:`205` - Weak References"
491- msgstr ""
515+ msgstr ":pep:`205` - 弱參照 "
492516
493517#: ../../library/weakref.rst:357
494518msgid ""
495519"The proposal and rationale for this feature, including links to earlier "
496520"implementations and information about similar features in other languages."
497- msgstr ""
521+ msgstr "此功能的提案和理由,包括早期實作的連結以及其他語言中類似功能的資訊。 "
498522
499523#: ../../library/weakref.rst:364
500524msgid "Weak Reference Objects"
501- msgstr ""
525+ msgstr "弱參照物件 "
502526
503527#: ../../library/weakref.rst:366
504528msgid ""
505529"Weak reference objects have no methods and no attributes besides :attr:`ref."
506530"__callback__`. A weak reference object allows the referent to be obtained, "
507531"if it still exists, by calling it:"
508532msgstr ""
533+ "弱參照物件除了 :attr:`ref.__callback__` 之外沒有任何方法和屬性。弱參照物件允"
534+ "許透過呼叫來獲取參照目標(如果它仍然存在):"
509535
510536#: ../../library/weakref.rst:380
511537msgid ""
512538"If the referent no longer exists, calling the reference object returns :"
513539"const:`None`:"
514- msgstr ""
540+ msgstr "如果參照目標不再存活,則呼叫參照物件將回傳 :const:`None`: "
515541
516542#: ../../library/weakref.rst:387
517543msgid ""
518544"Testing that a weak reference object is still live should be done using the "
519545"expression ``ref() is not None``. Normally, application code that needs to "
520546"use a reference object should follow this pattern::"
521547msgstr ""
548+ "應該使用運算式 ``ref() is not None`` 來測試弱參照物件是否仍然存活。需要使用參"
549+ "照物件的應用程式程式碼通常應遵循以下模式: ::"
522550
523551#: ../../library/weakref.rst:400
524552msgid ""
@@ -527,6 +555,9 @@ msgid ""
527555"invalidated before the weak reference is called; the idiom shown above is "
528556"safe in threaded applications as well as single-threaded applications."
529557msgstr ""
558+ "使用對「活性 (liveness)」的單獨測試會在執行緒應用程式中建立競爭條件 (race "
559+ "condition);另一個執行緒可能在弱參照被呼叫之前讓該弱參照失效;上方顯示的慣用"
560+ "作法在執行緒應用程式和單執行緒應用程式中都是安全的。"
530561
531562#: ../../library/weakref.rst:405
532563msgid ""
@@ -537,13 +568,19 @@ msgid ""
537568"reference, but could also be used to insert additional processing on calls "
538569"to retrieve the referent."
539570msgstr ""
571+ "可以透過子類別化來建立 :class:`ref` 物件的特殊版本。這在 :class:"
572+ "`WeakValueDictionary` 的實作中被使用,以減少對映中每個條目的記憶體開銷。這對"
573+ "於將附加資訊與參照相關聯最有用,但也可用於在呼叫上插入附加處理以檢索參照目"
574+ "標。"
540575
541576#: ../../library/weakref.rst:411
542577msgid ""
543578"This example shows how a subclass of :class:`ref` can be used to store "
544579"additional information about an object and affect the value that's returned "
545580"when the referent is accessed::"
546581msgstr ""
582+ "這個範例展示如何使用 :class:`ref` 的子類別來儲存有關物件的附加資訊並影響存取"
583+ "參照目標時回傳的值: ::"
547584
548585#: ../../library/weakref.rst:438
549586msgid "Example"
@@ -556,66 +593,78 @@ msgid ""
556593"other data structures without forcing the objects to remain alive, but the "
557594"objects can still be retrieved by ID if they do."
558595msgstr ""
596+ "這個簡單的範例展示了應用程式如何使用物件 ID 來檢索它以前見過的物件。物件的 "
597+ "ID 之後可以在其他資料結構中使用,而不必強制物件保持存活,但如果這樣做,仍然可"
598+ "以透過 ID 檢索物件。"
559599
560600#: ../../library/weakref.rst:465
561601msgid "Finalizer Objects"
562- msgstr ""
602+ msgstr "最終化器物件 "
563603
564604#: ../../library/weakref.rst:467
565605msgid ""
566606"The main benefit of using :class:`finalize` is that it makes it simple to "
567607"register a callback without needing to preserve the returned finalizer "
568608"object. For instance"
569609msgstr ""
610+ "使用 :class:`finalize` 的最大優點是可以輕鬆註冊回呼,而無需保留回傳的最終化器"
611+ "物件。例如"
570612
571613#: ../../library/weakref.rst:481
572614msgid ""
573615"The finalizer can be called directly as well. However the finalizer will "
574616"invoke the callback at most once."
575- msgstr ""
617+ msgstr "最終化器也可以直接被呼叫。然而,最終化器最多會調用回呼一次。 "
576618
577619#: ../../library/weakref.rst:497
578620msgid ""
579621"You can unregister a finalizer using its :meth:`~finalize.detach` method. "
580622"This kills the finalizer and returns the arguments passed to the constructor "
581623"when it was created."
582624msgstr ""
625+ "你可以使用最終化器的 :meth:`~finalize.detach` 方法來取消註冊最終化器。這會殺"
626+ "死最終化器並回傳建立建構函式時傳遞給建構函式的引數。"
583627
584628#: ../../library/weakref.rst:511
585629msgid ""
586630"Unless you set the :attr:`~finalize.atexit` attribute to :const:`False`, a "
587631"finalizer will be called when the program exits if it is still alive. For "
588632"instance"
589633msgstr ""
634+ "除非你將 :attr:`~finalize.atexit` 屬性設為 :const:`False`,否則當程式結束時,"
635+ "最終化器將會被呼叫如果其仍然存在。例如"
590636
591637#: ../../library/weakref.rst:526
592638msgid "Comparing finalizers with :meth:`~object.__del__` methods"
593- msgstr ""
639+ msgstr "最終化器與 :meth:`~object.__del__` 方法的比較 "
594640
595641#: ../../library/weakref.rst:528
596642msgid ""
597643"Suppose we want to create a class whose instances represent temporary "
598644"directories. The directories should be deleted with their contents when the "
599645"first of the following events occurs:"
600646msgstr ""
647+ "假設我們要建立一個類別,其實例代表臨時目錄。當以下任一事件發生時,應刪除目錄"
648+ "及其內容:"
601649
602650#: ../../library/weakref.rst:532
603651msgid "the object is garbage collected,"
604- msgstr ""
652+ msgstr "該物件被垃圾回收, "
605653
606654#: ../../library/weakref.rst:533
607655msgid "the object's :meth:`!remove` method is called, or"
608- msgstr ""
656+ msgstr "該物件的 :meth:`!remove` 方法被呼叫,或者 "
609657
610658#: ../../library/weakref.rst:534
611659msgid "the program exits."
612- msgstr ""
660+ msgstr "程式結束。 "
613661
614662#: ../../library/weakref.rst:536
615663msgid ""
616664"We might try to implement the class using a :meth:`~object.__del__` method "
617665"as follows::"
618666msgstr ""
667+ "我們可以用以下的方式來嘗試使用 :meth:`~object.__del__` 方法實作該類別: ::"
619668
620669#: ../../library/weakref.rst:555
621670msgid ""
@@ -624,34 +673,45 @@ msgid ""
624673"longer forced to :const:`None` during :term:`interpreter shutdown`. So this "
625674"code should work without any issues on CPython."
626675msgstr ""
676+ "從 Python 3.4 開始,:meth:`~object.__del__` 方法不再阻止參照循環 (reference "
677+ "cycle) 被垃圾回收,並且在 :term:`interpreter shutdown` 期間不再強制將模組的 "
678+ "globals 設為 :const:`None`。所以這段程式碼在 CPython 上應該可以正常運作。"
627679
628680#: ../../library/weakref.rst:560
629681msgid ""
630682"However, handling of :meth:`~object.__del__` methods is notoriously "
631683"implementation specific, since it depends on internal details of the "
632684"interpreter's garbage collector implementation."
633685msgstr ""
686+ "然而,眾所周知,對 :meth:`~object.__del__` 方法的處理是特地實作的,因為它依賴"
687+ "於直譯器的垃圾回收器實作的內部細節。"
634688
635689#: ../../library/weakref.rst:564
636690msgid ""
637691"A more robust alternative can be to define a finalizer which only references "
638692"the specific functions and objects that it needs, rather than having access "
639693"to the full state of the object::"
640694msgstr ""
695+ "更耐用的替代方案可以是定義一個最終化器,其僅參照需要的特定函式和物件,而不是"
696+ "存取物件的完整狀態: ::"
641697
642698#: ../../library/weakref.rst:580
643699msgid ""
644700"Defined like this, our finalizer only receives a reference to the details it "
645701"needs to clean up the directory appropriately. If the object never gets "
646702"garbage collected the finalizer will still be called at exit."
647703msgstr ""
704+ "定義如下,我們的最終化器僅接收對適當清理目錄所需的詳細資訊的參照。如果物件從"
705+ "未被垃圾回收,則最終化器仍將在結束時被呼叫。"
648706
649707#: ../../library/weakref.rst:584
650708msgid ""
651709"The other advantage of weakref based finalizers is that they can be used to "
652710"register finalizers for classes where the definition is controlled by a "
653711"third party, such as running code when a module is unloaded::"
654712msgstr ""
713+ "基於 weakref 的最終化器的另一個優點是它們可用於為定義由第三方控制的類別註冊最"
714+ "終化器,例如在卸載模組時執行程式碼: ::"
655715
656716#: ../../library/weakref.rst:596
657717msgid ""
@@ -660,3 +720,6 @@ msgid ""
660720"at exit. However, in a daemonic thread :func:`atexit.register`, ``try: ... "
661721"finally: ...`` and ``with: ...`` do not guarantee that cleanup occurs either."
662722msgstr ""
723+ "如果在程式結束時在常駐的 (daemonic) 執行緒中建立最終化器物件,則最終化器有可"
724+ "能在結束時不會被呼叫。然而,在常駐的執行緒中 :func:`atexit.register`、"
725+ "``try: ... finally: ...`` 和 ``with: ...`` 也不保證清理會發生。"