Repository navigation
Expand file tree
/
Copy pathglossary.po
More file actions
3691 lines (3190 loc) · 168 KB
/
Copy pathglossary.po
File metadata and controls
3691 lines (3190 loc) · 168 KB
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
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001 Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# python-doc bot, 2025
# 99 <wh2099@pm.me>, 2026
# Freesand Leo <yuqinju@163.com>, 2026
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.15\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-21 18:58+0000\n"
"PO-Revision-Date: 2025-09-16 00:00+0000\n"
"Last-Translator: Freesand Leo <yuqinju@163.com>, 2026\n"
"Language-Team: Chinese (China) (https://app.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"
#: ../../glossary.rst:5
msgid "Glossary"
msgstr "术语对照表"
#: ../../glossary.rst:10
msgid "``>>>``"
msgstr "``>>>``"
#: ../../glossary.rst:12
msgid ""
"The default Python prompt of the :term:`interactive` shell. Often seen for "
"code examples which can be executed interactively in the interpreter."
msgstr ":term:`interactive` shell 中默认的 Python 提示符。往往会显示于能以交互方式在解释器里执行的样例代码之前。"
#: ../../glossary.rst:15
msgid "``...``"
msgstr "``...``"
#: ../../glossary.rst:17
msgid "Can refer to:"
msgstr "具有以下含义:"
#: ../../glossary.rst:19
msgid ""
"The default Python prompt of the :term:`interactive` shell when entering the"
" code for an indented code block, when within a pair of matching left and "
"right delimiters (parentheses, square brackets, curly braces or triple "
"quotes), or after specifying a decorator."
msgstr ""
":term:`interactive` shell 中输入特殊代码时默认的 Python "
"提示符,特殊代码包括缩进的代码块,左右成对分隔符(圆括号、方括号、花括号或三重引号等)之内,或是在指定一个装饰器之后。"
#: ../../glossary.rst:26
msgid ""
"The three dots form of the :ref:`Ellipsis <bltin-ellipsis-object>` object."
msgstr "三点形式的 :ref:`省略符 <bltin-ellipsis-object>` 对象。"
#: ../../glossary.rst:27
msgid "abstract base class"
msgstr "abstract base class -- 抽象基类"
#: ../../glossary.rst:29
msgid ""
"Abstract base classes complement :term:`duck-typing` by providing a way to "
"define interfaces when other techniques like :func:`hasattr` would be clumsy"
" or subtly wrong (for example with :ref:`magic methods <special-lookup>`). "
"ABCs introduce virtual subclasses, which are classes that don't inherit from"
" a class but are still recognized by :func:`isinstance` and "
":func:`issubclass`; see the :mod:`abc` module documentation. Python comes "
"with many built-in ABCs for data structures (in the :mod:`collections.abc` "
"module), numbers (in the :mod:`numbers` module), streams (in the :mod:`io` "
"module), import finders and loaders (in the :mod:`importlib.abc` module). "
"You can create your own ABCs with the :mod:`abc` module."
msgstr ""
"抽象基类简称 ABC,是对 :term:`duck-typing` 的补充,它提供了一种定义接口的新方式,相比之下其他技巧例如 "
":func:`hasattr` 显得过于笨拙或有微妙错误 (例如使用 :ref:`魔术方法 <special-lookup>`)。 ABC "
"引入了虚拟子类,这种类并非继承自其他类,但却仍能被 :func:`isinstance` 和 :func:`issubclass` 所认可;详见 "
":mod:`abc` 模块文档。Python 自带许多内置的 ABC 用于实现数据结构(在 :mod:`collections.abc` "
"模块中)、数字(在 :mod:`numbers` 模块中)、流(在 :mod:`io` 模块中)、导入查找器和加载器(在 "
":mod:`importlib.abc` 模块中)。你可以使用 :mod:`abc` 模块来创建自己的 ABC。"
#: ../../glossary.rst:40
msgid "annotate function"
msgstr "annotate function -- 标注函数"
#: ../../glossary.rst:42
msgid ""
"A callable that can be called to retrieve the :term:`annotations "
"<annotation>` of an object. Annotate functions are usually :term:`functions "
"<function>`, automatically generated as the :attr:`~object.__annotate__` "
"attribute of functions, classes, and modules. Annotate functions are a "
"subset of :term:`evaluate functions <evaluate function>`."
msgstr ""
"一个可被调用以提取对象的 :term:`标注 <annotation>` 的可调用对象。 标注函数通常属于 :term:`函数 "
"<function>`,作为函数、类和模块的 :attr:`~object.__annotate__` 属性被自动生成。 标注函数是 "
":term:`求值函数的一个子集 <evaluate function>`。"
#: ../../glossary.rst:47
msgid "annotation"
msgstr "annotation -- 标注"
#: ../../glossary.rst:49
msgid ""
"A label associated with a variable, a class attribute or a function "
"parameter or return value, used by convention as a :term:`type hint`."
msgstr "关联到某个变量、类属性、函数形参或返回值的标签,被约定作为 :term:`类型注解 <type hint>` 来使用。"
#: ../../glossary.rst:53
msgid ""
"Annotations of local variables cannot be accessed at runtime, but "
"annotations of global variables, class attributes, and functions can be "
"retrieved by calling :func:`annotationlib.get_annotations` on modules, "
"classes, and functions, respectively."
msgstr ""
"局部变量的标注在运行时不可被访问,但全局变量、类属性和函数的标注可分别通过在模块、类和函数上调用 "
":func:`annotationlib.get_annotations` 来提取。"
#: ../../glossary.rst:58
msgid ""
"See :term:`variable annotation`, :term:`function annotation`, :pep:`484`, "
":pep:`526`, and :pep:`649`, which describe this functionality. Also see "
":ref:`annotations-howto` for best practices on working with annotations."
msgstr ""
"参见 :term:`variable annotation`, :term:`function annotation`, :pep:`484`, "
":pep:`526` 和 :pep:`649`,其中对此功能进行了描述。另请参见 :ref:`annotations-howto` "
"了解使用标注的最佳实践。"
#: ../../glossary.rst:62
msgid "argument"
msgstr "argument -- 参数"
#: ../../glossary.rst:64
msgid ""
"A value passed to a :term:`function` (or :term:`method`) when calling the "
"function. There are two kinds of argument:"
msgstr "在调用函数时传给 :term:`function` (或 :term:`method`) 的值。参数分为两种:"
#: ../../glossary.rst:67
msgid ""
":dfn:`keyword argument`: an argument preceded by an identifier (e.g. "
"``name=``) in a function call or passed as a value in a dictionary preceded "
"by ``**``. For example, ``3`` and ``5`` are both keyword arguments in the "
"following calls to :func:`complex`::"
msgstr ""
":dfn:`关键字参数`: 在函数调用中前面带有标识符 (例如 ``name=``) 或者作为包含在前面带有 ``**`` "
"的字典里的值传入。举例来说,``3`` 和 ``5`` 在以下对 :func:`complex` 的调用中均属于关键字参数::"
#: ../../glossary.rst:72
msgid ""
"complex(real=3, imag=5)\n"
"complex(**{'real': 3, 'imag': 5})"
msgstr ""
"complex(real=3, imag=5)\n"
"complex(**{'real': 3, 'imag': 5})"
#: ../../glossary.rst:75
msgid ""
":dfn:`positional argument`: an argument that is not a keyword argument. "
"Positional arguments can appear at the beginning of an argument list and/or "
"be passed as elements of an :term:`iterable` preceded by ``*``. For example,"
" ``3`` and ``5`` are both positional arguments in the following calls::"
msgstr ""
":dfn:`位置参数`: 不属于关键字参数的参数。位置参数可出现于参数列表的开头以及/或者作为前面带有 ``*`` 的 :term:`iterable`"
" 里的元素被传入。举例来说,``3`` 和 ``5`` 在以下调用中均属于位置参数::"
#: ../../glossary.rst:81
msgid ""
"complex(3, 5)\n"
"complex(*(3, 5))"
msgstr ""
"complex(3, 5)\n"
"complex(*(3, 5))"
#: ../../glossary.rst:84
msgid ""
"Arguments are assigned to the named local variables in a function body. See "
"the :ref:`calls` section for the rules governing this assignment. "
"Syntactically, any expression can be used to represent an argument; the "
"evaluated value is assigned to the local variable."
msgstr ""
"参数会被赋值给函数体中对应的局部变量。有关赋值规则参见 :ref:`calls` "
"一节。根据语法,任何表达式都可用来表示一个参数;最终算出的值会被赋给对应的局部变量。"
#: ../../glossary.rst:89
msgid ""
"See also the :term:`parameter` glossary entry, the FAQ question on :ref:`the"
" difference between arguments and parameters <faq-argument-vs-parameter>`, "
"and :pep:`362`."
msgstr ""
"另参见 :term:`parameter` 术语表条目,常见问题中 :ref:`参数与形参的区别 <faq-argument-vs-"
"parameter>` 以及 :pep:`362`。"
#: ../../glossary.rst:92
msgid "asynchronous context manager"
msgstr "asynchronous context manager -- 异步上下文管理器"
#: ../../glossary.rst:94
msgid ""
"An object which controls the environment seen in an :keyword:`async with` "
"statement by defining :meth:`~object.__aenter__` and "
":meth:`~object.__aexit__` methods. Introduced by :pep:`492`."
msgstr ""
"此种对象通过定义 :meth:`~object.__aenter__` 和 :meth:`~object.__aexit__` 方法来对 "
":keyword:`async with` 语句中的环境进行控制。由 :pep:`492` 引入。"
#: ../../glossary.rst:97
msgid "asynchronous generator"
msgstr "asynchronous generator -- 异步生成器"
#: ../../glossary.rst:99
msgid ""
"Informally used to mean either an :term:`asynchronous generator function` or"
" an :term:`asynchronous generator iterator`, depending on context. The "
"formal terms :term:`asynchronous generator function` and :term:`asynchronous"
" generator iterator` are uncommon in practice; \"asynchronous generator\" "
"alone is almost always sufficient."
msgstr ""
"用于非正式地指代 :term:`asynchronous generator function` 或 :term:`asynchronous "
"generator iterator`,取决于具体上下文。 正式术语 :term:`asynchronous generator function` 和"
" :term:`asynchronous generator iterator` 在现实中并不常用;通常只需说“异步生成器”就足够了。"
#: ../../glossary.rst:104
msgid "asynchronous generator function"
msgstr "asynchronous generator function -- 异步生成器函数"
#: ../../glossary.rst:106
msgid ""
"A function which returns an :term:`asynchronous generator iterator`. It "
"looks like a coroutine function defined with :keyword:`async def` except "
"that it contains :keyword:`yield` expressions for producing a series of "
"values usable in an :keyword:`async for` loop. See :pep:`525`."
msgstr ""
"返回 :term:`asynchronous generator iterator` 的函数。 它与使用 :keyword:`async def` "
"定义的协程函数很相似,区别在于它包含 :keyword:`yield` 表达式用来产生一系列可在 :keyword:`async for` "
"循环中使用的值。 参见 :pep:`525`。"
#: ../../glossary.rst:111
msgid ""
"An asynchronous generator function may contain :keyword:`await` expressions "
"as well as :keyword:`async for`, and :keyword:`async with` statements."
msgstr ""
"一个异步生成器函数可能包含 :keyword:`await` 表达式或者 :keyword:`async for` 以及 :keyword:`async"
" with` 语句。"
#: ../../glossary.rst:114
msgid "asynchronous generator iterator"
msgstr "asynchronous generator iterator -- 异步生成器迭代器"
#: ../../glossary.rst:116
msgid "An object created by an :term:`asynchronous generator function`."
msgstr "由 :term:`asynchronous generator function` 创建的对象。"
#: ../../glossary.rst:118
msgid ""
"This is an :term:`asynchronous iterator` which when called using the "
":meth:`~object.__anext__` method returns an awaitable object which will "
"execute the body of the asynchronous generator function until the next "
":keyword:`yield` expression."
msgstr ""
"此对象属于 :term:`asynchronous iterator`,当使用 :meth:`~object.__anext__` "
"方法调用时会返回一个可等待对象来执行异步生成器函数的函数体直到下一个 :keyword:`yield` 表达式。"
#: ../../glossary.rst:123
msgid ""
"Each :keyword:`yield` temporarily suspends processing, remembering the "
"execution state (including local variables and pending try-statements). "
"When the *asynchronous generator iterator* effectively resumes with another "
"awaitable returned by :meth:`~object.__anext__`, it picks up where it left "
"off. See :pep:`492` and :pep:`525`."
msgstr ""
"每个 :keyword:`yield` 会临时暂停处理过程,记住执行状态(包括局部变量和挂起的 try 语句)。当 *异步生成器迭代器* 通过 "
":meth:`~object.__anext__` 所返回的另一个可等待对象有效地恢复时,它会从离开位置恢复处理过程。参见 :pep:`492` 和 "
":pep:`525`."
#: ../../glossary.rst:128
msgid "asynchronous iterable"
msgstr "asynchronous iterable -- 异步可迭代对象"
#: ../../glossary.rst:130
msgid ""
"An object, that can be used in an :keyword:`async for` statement. Must "
"return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` "
"method. Introduced by :pep:`492`."
msgstr ""
"一个可以在 :keyword:`async for` 语句中使用的对象。必须通过它的 :meth:`~object.__aiter__` 方法返回一个 "
":term:`asynchronous iterator`。由 :pep:`492` 引入。"
#: ../../glossary.rst:133
msgid "asynchronous iterator"
msgstr "asynchronous iterator -- 异步迭代器"
#: ../../glossary.rst:135
msgid ""
"An object that implements the :meth:`~object.__aiter__` and "
":meth:`~object.__anext__` methods. :meth:`~object.__anext__` must return an"
" :term:`awaitable` object. :keyword:`async for` resolves the awaitables "
"returned by an asynchronous iterator's :meth:`~object.__anext__` method "
"until it raises a :exc:`StopAsyncIteration` exception. Introduced by "
":pep:`492`."
msgstr ""
"一个实现了 :meth:`~object.__aiter__` 和 :meth:`~object.__anext__` 方法的对象。 "
":meth:`~object.__anext__` 必须返回一个 :term:`awaitable` 对象。 :keyword:`async for` "
"会处理异步迭代器的 :meth:`~object.__anext__` 方法所返回的可等待对象直到其引发一个 "
":exc:`StopAsyncIteration` 异常。由 :pep:`492` 引入。"
#: ../../glossary.rst:140
msgid "atomic operation"
msgstr "atomic operation -- 原子化操作"
#: ../../glossary.rst:142
msgid ""
"An operation that appears to execute as a single, indivisible step: no other"
" thread can observe it half-done, and its effects become visible all at "
"once. Python does not guarantee that high-level statements are atomic (for "
"example, ``x += 1`` performs multiple bytecode operations and is not "
"atomic). Atomicity is only guaranteed where explicitly documented. See "
"also :term:`race condition` and :term:`data race`."
msgstr ""
"作为一个单独的、不可再分的步骤执行的操作;没有其他线程能看到其完成一半的状态,其结果将在全部完成时可见。Python "
"不保证高层级语句是原子化的(例如,``x += 1`` 将执行多个字节码操作因而不是原子化的)。原子化性质仅在显式写入文档时被保证。另请参阅 "
":term:`race condition` 和 :term:`data race`。"
#: ../../glossary.rst:148
msgid "attached thread state"
msgstr "attached thread state -- 附加线程状态"
#: ../../glossary.rst:151
msgid "A :term:`thread state` that is active for the current OS thread."
msgstr "为当前 OS 线程激活的 :term:`thread state`。"
#: ../../glossary.rst:153
msgid ""
"When a :term:`thread state` is attached, the OS thread has access to the "
"full Python C API and can safely invoke the bytecode interpreter."
msgstr "当附加 :term:`thread state` 时,OS 线程将可访问完整 Python C API 并能安全地唤起字节码解释器。"
#: ../../glossary.rst:157
msgid ""
"Unless a function explicitly notes otherwise, attempting to call the C API "
"without an attached thread state will result in a fatal error or undefined "
"behavior. A thread state can be attached and detached explicitly by the "
"user through the C API, or implicitly by the runtime, including during "
"blocking C calls and by the bytecode interpreter in between calls."
msgstr ""
"除非函数明确指出,否则尝试在没有附加线程状态的情况下调用 C API 将导致致命错误或未定义行为。线程状态可以由用户通过 C API "
"显式地附加和分离,也可以由运行时隐式地附加和分离,包括在阻塞 C 调用期间和调用之间的字节码解释器。"
#: ../../glossary.rst:164
msgid ""
"On most builds of Python, having an attached thread state implies that the "
"caller holds the :term:`GIL` for the current interpreter, so only one OS "
"thread can have an attached thread state at a given moment. In :term:`free-"
"threaded builds <free-threaded build>` of Python, threads can concurrently "
"hold an attached thread state, allowing for true parallelism of the bytecode"
" interpreter."
msgstr ""
"在大多数 Python 构建版中,具有附加线程状态意味着调用方持有当前解释器的 :term:`GIL`,因此在给定时刻只有一个 OS "
"线程可以具有附加线程状态。在 Python 的 :term:`自由线程构建版 <free-threaded build>` "
"中,线程可以并发地持有附加线程状态,从而允许字节码解释器的真正并行性。"
#: ../../glossary.rst:170
msgid "attribute"
msgstr "attribute -- 属性"
#: ../../glossary.rst:172
msgid ""
"A value associated with an object which is usually referenced by name using "
"dotted expressions. For example, if an object *o* has an attribute *a* it "
"would be referenced as *o.a*."
msgstr "关联到一个对象的值,通常使用点号表达式按名称来引用。举例来说,如果对象 *o* 具有属性 *a* 则可以用 *o.a* 来引用它。"
#: ../../glossary.rst:177
msgid ""
"It is possible to give an object an attribute whose name is not an "
"identifier as defined by :ref:`identifiers`, for example using "
":func:`setattr`, if the object allows it. Such an attribute will not be "
"accessible using a dotted expression, and would instead need to be retrieved"
" with :func:`getattr`."
msgstr ""
"如果对象允许,将未被定义为 :ref:`identifiers` 的非标识名称用作一个对象的属性也是可以的,例如使用 :func:`setattr`。 "
"这样的属性将无法使用点号表达式来访问,而是必须通过 :func:`getattr` 来获取。"
#: ../../glossary.rst:182
msgid "awaitable"
msgstr "awaitable -- 可等待对象"
#: ../../glossary.rst:184
msgid ""
"An object that can be used in an :keyword:`await` expression. Can be a "
":term:`coroutine` or an object with an :meth:`~object.__await__` method. See"
" also :pep:`492`."
msgstr ""
"一个可在 :keyword:`await` 表达式中使用的对象。可以是 :term:`coroutine` 或是具有 "
":meth:`~object.__await__` 方法的对象。参见 :pep:`492`。"
#: ../../glossary.rst:187
msgid "BDFL"
msgstr "BDFL"
#: ../../glossary.rst:189
msgid ""
"Benevolent Dictator For Life, a.k.a. `Guido van Rossum "
"<https://gvanrossum.github.io/>`_, Python's creator."
msgstr ""
"“终身仁慈独裁者”的英文缩写,即 `Guido van Rossum <https://gvanrossum.github.io/>`_,Python "
"的创造者。"
#: ../../glossary.rst:191
msgid "binary file"
msgstr "binary file -- 二进制文件"
#: ../../glossary.rst:193
msgid ""
"A :term:`file object` able to read and write :term:`bytes-like objects "
"<bytes-like object>`. Examples of binary files are files opened in binary "
"mode (``'rb'``, ``'wb'`` or ``'rb+'``), :data:`sys.stdin.buffer "
"<sys.stdin>`, :data:`sys.stdout.buffer <sys.stdout>`, and instances of "
":class:`io.BytesIO` and :class:`gzip.GzipFile`."
msgstr ""
":term:`file object` 能够读写 :term:`字节型对象 <bytes-like object>`。二进制文件的例子包括以二进制模式 "
"(``'rb'``, ``'wb'`` 或 ``'rb+'``) 打开的文件、:data:`sys.stdin.buffer "
"<sys.stdin>`、:data:`sys.stdout.buffer <sys.stdout>` 以及 :class:`io.BytesIO` 和"
" :class:`gzip.GzipFile` 的实例。"
#: ../../glossary.rst:200
msgid ""
"See also :term:`text file` for a file object able to read and write "
":class:`str` objects."
msgstr "另请参见 :term:`text file` 了解能够读写 :class:`str` 对象的文件对象。"
#: ../../glossary.rst:202
msgid "borrowed reference"
msgstr "borrowed reference -- 借入引用"
#: ../../glossary.rst:204
msgid ""
"In Python's C API, a borrowed reference is a reference to an object, where "
"the code using the object does not own the reference. It becomes a dangling "
"pointer if the object is destroyed. For example, a garbage collection can "
"remove the last :term:`strong reference` to the object and so destroy it."
msgstr ""
"在 Python 的 C API 中,借用引用是指一种对象引用,使用该对象的代码并不持有该引用。如果对象被销毁则它就会变成一个悬空指针。 "
"例如,垃圾回收器可以移除对象的最后一个 :term:`strong reference` 来销毁它。"
#: ../../glossary.rst:210
msgid ""
"Calling :c:func:`Py_INCREF` on the :term:`borrowed reference` is recommended"
" to convert it to a :term:`strong reference` in-place, except when the "
"object cannot be destroyed before the last usage of the borrowed reference. "
"The :c:func:`Py_NewRef` function can be used to create a new :term:`strong "
"reference`."
msgstr ""
"推荐在 :term:`borrowed reference` 上调用 :c:func:`Py_INCREF` 以将其原地转换为 "
":term:`strong reference`,除非是当该对象无法在借入引用的最后一次使用之前被销毁。 :c:func:`Py_NewRef` "
"函数可以被用来创建一个新的 :term:`strong reference`。"
#: ../../glossary.rst:215
msgid "bytes-like object"
msgstr "bytes-like object -- 字节型对象"
#: ../../glossary.rst:217
msgid ""
"An object that supports the :ref:`bufferobjects` and can export a "
"C-:term:`contiguous` buffer. This includes all :class:`bytes`, "
":class:`bytearray`, and :class:`array.array` objects, as well as many common"
" :class:`memoryview` objects. Bytes-like objects can be used for various "
"operations that work with binary data; these include compression, saving to "
"a binary file, and sending over a socket."
msgstr ""
"支持 :ref:`bufferobjects` 并且能导出 C-:term:`contiguous` 缓冲的对象。这包括所有 "
":class:`bytes`、:class:`bytearray` 和 :class:`array.array` 对象,以及许多普通 "
":class:`memoryview` 对象。字节型对象可在多种二进制数据操作中使用;这些操作包括压缩、保存为二进制文件以及通过套接字发送等。"
#: ../../glossary.rst:224
msgid ""
"Some operations need the binary data to be mutable. The documentation often"
" refers to these as \"read-write bytes-like objects\". Example mutable "
"buffer objects include :class:`bytearray` and a :class:`memoryview` of a "
":class:`bytearray`. Other operations require the binary data to be stored in"
" immutable objects (\"read-only bytes-like objects\"); examples of these "
"include :class:`bytes` and a :class:`memoryview` of a :class:`bytes` object."
msgstr ""
"某些操作需要可变的二进制数据。这种对象在文档中常被称为“可读写字节类对象”。可变缓冲对象的例子包括 :class:`bytearray` 以及 "
":class:`bytearray` 的 :class:`memoryview`。其他操作要求二进制数据存放于不可变对象 "
"(\"只读字节类对象\");这种对象的例子包括 :class:`bytes` 以及 :class:`bytes` 对象的 "
":class:`memoryview`。"
#: ../../glossary.rst:232
msgid "bytecode"
msgstr "bytecode -- 字节码"
#: ../../glossary.rst:234
msgid ""
"Python source code is compiled into bytecode, the internal representation of"
" a Python program in the CPython interpreter. The bytecode is also cached "
"in ``.pyc`` files so that executing the same file is faster the second time "
"(recompilation from source to bytecode can be avoided). This \"intermediate"
" language\" is said to run on a :term:`virtual machine` that executes the "
"machine code corresponding to each bytecode. Do note that bytecodes are not "
"expected to work between different Python virtual machines, nor to be stable"
" between Python releases."
msgstr ""
"Python 源代码会被编译为字节码,即 CPython 解释器中表示 Python 程序的内部代码。字节码还会缓存在 ``.pyc`` "
"文件中,这样第二次执行同一文件时速度更快(可以免去将源码重新编译为字节码)。这种 \"中间语言\" 运行在根据字节码执行相应机器码的 "
":term:`virtual machine` 之上。请注意不同 Python 虚拟机上的字节码不一定通用,也不一定能在不同 Python 版本上兼容。"
#: ../../glossary.rst:244
msgid ""
"A list of bytecode instructions can be found in the documentation for "
":ref:`the dis module <bytecodes>`."
msgstr "字节码指令列表可以在 :ref:`dis 模块 <bytecodes>` 的文档中查看。"
#: ../../glossary.rst:246
msgid "callable"
msgstr "callable -- 可调用对象"
#: ../../glossary.rst:248
msgid ""
"A callable is an object that can be called, possibly with a set of arguments"
" (see :term:`argument`), with the following syntax::"
msgstr "可调用对象就是可以执行调用运算的对象,并可能附带一组参数 (参见 :term:`argument`),使用以下语法::"
#: ../../glossary.rst:251
msgid "callable(argument1, argument2, argumentN)"
msgstr "callable(argument1, argument2, argumentN)"
#: ../../glossary.rst:253
msgid ""
"A :term:`function`, and by extension a :term:`method`, is a callable. An "
"instance of a class that implements the :meth:`~object.__call__` method is "
"also a callable."
msgstr ""
":term:`function`,还可扩展到 :term:`method` 等,就属于可调用对象。实现了 "
":meth:`~object.__call__` 方法的类的实例也属于可调用对象。"
#: ../../glossary.rst:256
msgid "callback"
msgstr "callback -- 回调"
#: ../../glossary.rst:258
msgid ""
"A subroutine function which is passed as an argument to be executed at some "
"point in the future."
msgstr "一个作为参数被传入以用以在未来的某个时刻被调用的子例程函数。"
#: ../../glossary.rst:260
msgid "class"
msgstr "class -- 类"
#: ../../glossary.rst:262
msgid ""
"A template for creating user-defined objects. Class definitions normally "
"contain method definitions which operate on instances of the class."
msgstr "用来创建用户定义对象的模板。类定义通常包含对该类的实例进行操作的方法定义。"
#: ../../glossary.rst:265
msgid "class variable"
msgstr "class variable -- 类变量"
#: ../../glossary.rst:267
msgid ""
"A variable defined in a class and intended to be modified only at class "
"level (i.e., not in an instance of the class)."
msgstr "在类中定义的变量,并且仅限在类的层级上修改 (而不是在类的实例中修改)。"
#: ../../glossary.rst:269
msgid "closure variable"
msgstr "closure variable -- 闭包变量"
#: ../../glossary.rst:271
msgid ""
"A :term:`free variable` referenced from a :term:`nested scope` that is "
"defined in an outer scope rather than being resolved at runtime from the "
"globals or builtin namespaces. May be explicitly defined with the "
":keyword:`nonlocal` keyword to allow write access, or implicitly defined if "
"the variable is only being read."
msgstr ""
"引用自 :term:`nested scope` 的 :term:`free "
"variable`,它是在外层作用域中定义而不是在运行时自全局或内置命名空间中取得。可能使用 :keyword:`nonlocal` "
"关键字显式地定义以允许写入访问,或者如果变量仅供读取则只需隐式地定义。"
#: ../../glossary.rst:276
msgid ""
"For example, in the ``inner`` function in the following code, both ``x`` and"
" ``print`` are :term:`free variables <free variable>`, but only ``x`` is a "
"*closure variable*::"
msgstr ""
"例如,在以下代码的 ``inner`` 函数中,``x`` 和 ``print`` 均为 :term:`自由变量 <free "
"variable>`,但只有 ``x`` 属于 *闭包变量*::"
#: ../../glossary.rst:279
msgid ""
"def outer():\n"
" x = 0\n"
" def inner():\n"
" nonlocal x\n"
" x += 1\n"
" print(x)\n"
" return inner"
msgstr ""
"def outer():\n"
" x = 0\n"
" def inner():\n"
" nonlocal x\n"
" x += 1\n"
" print(x)\n"
" return inner"
#: ../../glossary.rst:287
msgid ""
"Due to the :attr:`codeobject.co_freevars` attribute (which, despite its "
"name, only includes the names of closure variables rather than listing all "
"referenced free variables), the more general :term:`free variable` term is "
"sometimes used even when the intended meaning is to refer specifically to "
"closure variables."
msgstr ""
"由于 :attr:`codeobject.co_freevars` "
"属性的存在(虽然名称如此,但其仅包括闭包变量名称而非列出所有被引用的自由变量),更一般化的术语 :term:`free variable` "
"有时在即便本意是专指闭包变量时也会被使用。"
#: ../../glossary.rst:291
msgid "complex number"
msgstr "complex number -- 复数"
#: ../../glossary.rst:293
msgid ""
"An extension of the familiar real number system in which all numbers are "
"expressed as a sum of a real part and an imaginary part. Imaginary numbers "
"are real multiples of the imaginary unit (the square root of ``-1``), often "
"written ``i`` in mathematics or ``j`` in engineering. Python has built-in "
"support for complex numbers, which are written with this latter notation; "
"the imaginary part is written with a ``j`` suffix, e.g., ``3+1j``. To get "
"access to complex equivalents of the :mod:`math` module, use :mod:`cmath`. "
"Use of complex numbers is a fairly advanced mathematical feature. If you're"
" not aware of a need for them, it's almost certain you can safely ignore "
"them."
msgstr ""
"对普通实数系统的扩展,其中所有数字都被表示为一个实部和一个虚部的和。虚数是虚数单位 (``-1`` 的平方根) 的实倍数,通常在数学中写为 "
"``i``,在工程学中写为 ``j``。Python 内置了对复数的支持,采用工程学标记方式;虚部带有一个 ``j`` 后缀,例如 "
"``3+1j``。如果需要 :mod:`math` 模块内对象的对应复数版本,请使用 "
":mod:`cmath`,复数的使用是一个比较高级的数学特性。如果你感觉没有必要,忽略它们也几乎不会有任何问题。"
#: ../../glossary.rst:303
msgid "concurrency"
msgstr "concurrency -- 并发"
#: ../../glossary.rst:305
msgid ""
"The ability of a computer program to perform multiple tasks at the same "
"time. Python provides libraries for writing programs that make use of "
"different forms of concurrency. :mod:`asyncio` is a library for dealing "
"with asynchronous tasks and coroutines. :mod:`threading` provides access to"
" operating system threads and :mod:`multiprocessing` to operating system "
"processes. Multi-core processors can execute threads and processes on "
"different CPU cores at the same time (see :term:`parallelism`)."
msgstr ""
"一个计算机程序同时执行多个任务的能力。Python 提供了用于编写采用不同并发形式的程序的多个库。 :mod:`asyncio` "
"是用于处理异步任务和协程的库。 :mod:`threading` 提供对操作系统线程的访问而 :mod:`multiprocessing` "
"提供对操作系统进程的访问。多核心处理器可以同时在不同的 CPU 核心上执行线程和进程 (参见 :term:`parallelism`)。"
#: ../../glossary.rst:313
msgid "concurrent modification"
msgstr "concurrent modification -- 并发修改"
#: ../../glossary.rst:315
msgid ""
"When multiple threads modify shared data at the same time. Concurrent "
"modification without proper synchronization can cause :term:`race conditions"
" <race condition>`, and might also trigger a :term:`data race <data race>`, "
"data corruption, or both."
msgstr ""
"当多个线程同时修改共享数据时。没有适当同步的并发修改可能导致 :term:`竞争条件 <race condition>`,还可能触发 "
":term:`数据竞争 <data race>`,数据损坏,或是两者兼有。"
#: ../../glossary.rst:319
msgid "context"
msgstr "context -- 上下文"
#: ../../glossary.rst:321
msgid ""
"This term has different meanings depending on where and how it is used. Some"
" common meanings:"
msgstr "此术语根据其所在场合和使用方式的不同而具有不同的含义。一些常见的含义为:"
#: ../../glossary.rst:324
msgid ""
"The temporary state or environment established by a :term:`context manager` "
"via a :keyword:`with` statement."
msgstr "通过 :keyword:`with` 语句由一个 :term:`context manager` 所创建的临时环境或状态。"
#: ../../glossary.rst:326
msgid ""
"The collection of keyvalue bindings associated with a particular "
":class:`contextvars.Context` object and accessed via "
":class:`~contextvars.ContextVar` objects. Also see :term:`context "
"variable`."
msgstr ""
"一组关联到特定 :class:`contextvars.Context` 对象并通过 :class:`~contextvars.ContextVar` "
"对象来访问的键值绑定。另请参见 :term:`context variable`。"
#: ../../glossary.rst:330
msgid ""
"A :class:`contextvars.Context` object. Also see :term:`current context`."
msgstr "一个 :class:`contextvars.Context` 对象。另请参见 :term:`current context`。"
#: ../../glossary.rst:332
msgid "context management protocol"
msgstr "context management protocol -- 上下文管理协议"
#: ../../glossary.rst:334
msgid ""
"The :meth:`~object.__enter__` and :meth:`~object.__exit__` methods called by"
" the :keyword:`with` statement. See :pep:`343`."
msgstr ""
":meth:`~object.__enter__` 和 :meth:`~object.__exit__` 方法将由 :keyword:`with` "
"语句来调用。参见 :pep:`343`。"
#: ../../glossary.rst:336
msgid "context manager"
msgstr "context manager -- 上下文管理器"
#: ../../glossary.rst:338
msgid ""
"An object which implements the :term:`context management protocol` and "
"controls the environment seen in a :keyword:`with` statement. See "
":pep:`343`."
msgstr ""
"一个实现了 :term:`context management protocol` 并负责控制某个 :keyword:`with` 语句内的环境的对象。"
" 参见 :pep:`343`。"
#: ../../glossary.rst:341
msgid "context variable"
msgstr "context variable -- 上下文变量"
#: ../../glossary.rst:343
msgid ""
"A variable whose value depends on which context is the :term:`current "
"context`. Values are accessed via :class:`contextvars.ContextVar` objects."
" Context variables are primarily used to isolate state between concurrent "
"asynchronous tasks."
msgstr ""
"一个具体值取决于哪个上下文是 :term:`current context` 的变量。这些值是通过 "
":class:`contextvars.ContextVar` 对象来访问的。上下文变量主要被用来隔离并发的异步任务之间的状态。"
#: ../../glossary.rst:347
msgid "contiguous"
msgstr "contiguous -- 连续"
#: ../../glossary.rst:351
msgid ""
"A buffer is considered contiguous exactly if it is either *C-contiguous* or "
"*Fortran contiguous*. Zero-dimensional buffers are C and Fortran "
"contiguous. In one-dimensional arrays, the items must be laid out in memory"
" next to each other, in order of increasing indexes starting from zero. In "
"multidimensional C-contiguous arrays, the last index varies the fastest when"
" visiting items in order of memory address. However, in Fortran contiguous "
"arrays, the first index varies the fastest."
msgstr ""
"一个缓冲如果是 *C 连续* 或 *Fortran 连续* 就会被认为是连续的。零维缓冲是 C 和 Fortran "
"连续的。在一维数组中,所有条目必须在内存中彼此相邻地排列,采用从零开始的递增索引顺序。在多维 "
"C-连续数组中,当按内存地址排列时用最后一个索引访问条目时速度最快。但是在 Fortran 连续数组中则是用第一个索引最快。"
#: ../../glossary.rst:359
msgid "coroutine"
msgstr "coroutine -- 协程"
#: ../../glossary.rst:361
msgid ""
"Coroutines are a more generalized form of subroutines. Subroutines are "
"entered at one point and exited at another point. Coroutines can be "
"entered, exited, and resumed at many different points. They can be "
"implemented with the :keyword:`async def` statement. See also :pep:`492`."
msgstr ""
"协程是子例程的更一般形式。子例程可以在某一点进入并在另一点退出。协程则可以在许多不同的点上进入、退出和恢复。它们可通过 :keyword:`async "
"def` 语句来实现。参见 :pep:`492`。"
#: ../../glossary.rst:366
msgid "coroutine function"
msgstr "coroutine function -- 协程函数"
#: ../../glossary.rst:368
msgid ""
"A function which returns a :term:`coroutine` object. A coroutine function "
"may be defined with the :keyword:`async def` statement, and may contain "
":keyword:`await`, :keyword:`async for`, and :keyword:`async with` keywords."
" These were introduced by :pep:`492`."
msgstr ""
"返回一个 :term:`coroutine` 对象的函数。协程函数可通过 :keyword:`async def` 语句来定义,并可能包含 "
":keyword:`await`、:keyword:`async for` 和 :keyword:`async with` 关键字。这些特性是由 "
":pep:`492` 引入的。"
#: ../../glossary.rst:373
msgid "CPython"
msgstr "CPython"
#: ../../glossary.rst:375
msgid ""
"The canonical implementation of the Python programming language, as "
"distributed on `python.org <https://www.python.org>`_. The term \"CPython\""
" is used when necessary to distinguish this implementation from others such "
"as Jython or IronPython."
msgstr ""
"Python 编程语言的规范实现,在 `python.org <https://www.python.org>`_ 上发布。\"CPython\" "
"一词用于在必要时将此实现与其他实现例如 Jython 或 IronPython 相区别。"
#: ../../glossary.rst:379
msgid "current context"
msgstr "current context -- 当前上下文"
#: ../../glossary.rst:381
msgid ""
"The :term:`context` (:class:`contextvars.Context` object) that is currently "
"used by :class:`~contextvars.ContextVar` objects to access (get or set) the "
"values of :term:`context variables <context variable>`. Each thread has its"
" own current context. Frameworks for executing asynchronous tasks (see "
":mod:`asyncio`) associate each task with a context which becomes the current"
" context whenever the task starts or resumes execution."
msgstr ""
"在当前被 :class:`~contextvars.ContextVar` 对象用来访问 (获取或设置) :term:`上下文变量 <context "
"variable>` 的值的 :term:`context` (:class:`contextvars.Context` 对象)。 "
"每个线程都具有它自己的当前上下文。用于执行异步任务 (参见 :mod:`asyncio`) "
"的框架会在每个任务开始或恢复执行时将任务关联到一个成为当前上下文的上下文。"
#: ../../glossary.rst:387
msgid "cyclic isolate"
msgstr "cyclic isolate -- 循环隔离"
#: ../../glossary.rst:389
msgid ""
"A subgroup of one or more objects that reference each other in a reference "
"cycle, but are not referenced by objects outside the group. The goal of the"
" :term:`cyclic garbage collector <garbage collection>` is to identify these "
"groups and break the reference cycles so that the memory can be reclaimed."
msgstr ""
"某个引用循环中的子分组,其中包含的一个或多个对象会相互引用但不会被分组以外的对象所引用。 :term:`循环垃圾回收器 <garbage "
"collection>` 的目标是标识出这些分组并打断其引用循环以便回收相应的内存。"
#: ../../glossary.rst:393
msgid "data race"
msgstr "data race -- 数据竞争"
#: ../../glossary.rst:395
msgid ""
"A situation where multiple threads access the same memory location "
"concurrently, at least one of the accesses is a write, and the threads do "
"not use any synchronization to control their access. Data races lead to "
":term:`non-deterministic` behavior and can cause data corruption. Proper use"
" of :term:`locks <lock>` and other :term:`synchronization primitives "
"<synchronization primitive>` prevents data races. Note that data races can "
"only happen in native code, but that :term:`native code` might be exposed in"
" a Python API. See also :term:`race condition` and :term:`thread-safe`."
msgstr ""
"多个线程并发地访问相同内存位置的情况,至少有一个访问是写入,并且各线程没有使用任何同步机制来控制它们的访问。数据竞争会导致 :term:`non-"
"deterministic` 行为并可造成数据损坏。正确使用 :term:`锁 <lock>` 和其他 :term:`同步原语 "
"<synchronization primitive>` 可以防止数据竞争。请注意数据竞争只会发生在原生代码中,但是 :term:`native "
"code` 可能会在 Python API 中暴露出来。另请参阅 :term:`race condition` 和 :term:`thread-"
"safe`."
#: ../../glossary.rst:404
msgid "deadlock"
msgstr "deadlock -- 死锁"
#: ../../glossary.rst:406
msgid ""
"A situation in which two or more tasks (threads, processes, or coroutines) "
"wait indefinitely for each other to release resources or complete actions, "
"preventing any from making progress. For example, if thread A holds lock 1 "
"and waits for lock 2, while thread B holds lock 2 and waits for lock 1, both"
" threads will wait indefinitely. In Python this often arises from acquiring"
" multiple locks in conflicting orders or from circular join/await "
"dependencies. Deadlocks can be avoided by always acquiring multiple "
":term:`locks <lock>` in a consistent order. See also :term:`lock` and "
":term:`reentrant`."
msgstr ""
"在某种情况下有两个以上任务(线程、进程或协程)无限地等待彼此释放资源或完成动作,导致任何一个都无法继续执行。举例来说,如果线程 A 持有锁 1 并等待锁"
" 2,而线程 B 持有锁 2 并等待锁 1,则两个线程将无限地等待。在 Python 中这往往发生于以相互冲突的顺序获取多个锁或是循环对依赖项执行 "
"join/await 操作。死锁可通过始终以固定顺序获取多个 :term:`锁 <lock>` 来避免。另请参阅 :term:`lock` 和 "
":term:`reentrant`。"
#: ../../glossary.rst:415
msgid "decorator"
msgstr "decorator -- 装饰器"
#: ../../glossary.rst:417
msgid ""
"A function returning another function, usually applied as a function "
"transformation using the ``@wrapper`` syntax. Common examples for "
"decorators are :deco:`classmethod` and :deco:`staticmethod`."
msgstr ""
"返回值为另一个函数的函数,通常使用 ``@wrapper`` 语法来应用函数变换。 装饰器的常见例子是 :deco:`classmethod` 和 "
":deco:`staticmethod`。"
#: ../../glossary.rst:421
msgid ""
"The decorator syntax is merely syntactic sugar, the following two function "
"definitions are semantically equivalent::"
msgstr "装饰器语法只是一种语法糖,以下两个函数定义在语义上完全等价::"
#: ../../glossary.rst:424
msgid ""
"def f(arg):\n"
" ...\n"
"f = staticmethod(f)\n"
"\n"
"@staticmethod\n"
"def f(arg):\n"
" ..."
msgstr ""
"def f(arg):\n"
" ...\n"
"f = staticmethod(f)\n"
"\n"
"@staticmethod\n"
"def f(arg):\n"
" ..."
#: ../../glossary.rst:432
msgid ""
"The same concept exists for classes, but is less commonly used there. See "
"the documentation for :ref:`function definitions <function>` and :ref:`class"
" definitions <class>` for more about decorators."
msgstr ""
"同样的概念也适用于类,但通常较少这样使用。有关装饰器的详情可参见 :ref:`函数定义 <function>` 和 :ref:`类定义 <class>`"
" 的文档。"
#: ../../glossary.rst:435
msgid "descriptor"
msgstr "descriptor -- 描述器"
#: ../../glossary.rst:437
msgid ""
"Any object which defines the methods :meth:`~object.__get__`, "
":meth:`~object.__set__`, or :meth:`~object.__delete__`. When a class "
"attribute is a descriptor, its special binding behavior is triggered upon "
"attribute lookup. Normally, using *a.b* to get, set or delete an attribute "
"looks up the object named *b* in the class dictionary for *a*, but if *b* is"
" a descriptor, the respective descriptor method gets called. Understanding "
"descriptors is a key to a deep understanding of Python because they are the "
"basis for many features including functions, methods, properties, class "
"methods, static methods, and reference to super classes."
msgstr ""
"任何定义了 :meth:`~object.__get__`, :meth:`~object.__set__` 或 "
":meth:`~object.__delete__` 方法的对象。当一个类属性为描述器时,它的特殊绑定行为就会在属性查找时被触发。通常情况下,使用 "
"*a.b* 来获取、设置或删除一个属性时会在 *a* 类的字典中查找名称为 *b* 的对象,但如果 *b* 是一个描述器,则会调用对应的描述器方法。 "
"理解描述器的概念是更深层次理解 Python 的关键,因为这是许多重要特性的基础,包括函数、方法、特征属性、类方法、静态方法以及对超类的引用等等。"
#: ../../glossary.rst:448
msgid ""
"For more information about descriptors' methods, see :ref:`descriptors` or "
"the :ref:`Descriptor How To Guide <descriptorhowto>`."
msgstr ""
"有关描述器的方法的更多信息,请参阅 :ref:`descriptors` 或 :ref:`描述器使用指南 <descriptorhowto>`。"
#: ../../glossary.rst:450
msgid "dictionary"
msgstr "dictionary -- 字典"
#: ../../glossary.rst:452
msgid ""
"An associative array, where arbitrary keys are mapped to values. The keys "
"can be any object with :meth:`~object.__hash__` and :meth:`~object.__eq__` "
"methods. Called a hash in Perl."
msgstr ""
"一个关联数组,其中的任意键都映射到相应的值。键可以是任何具有 :meth:`~object.__hash__` 和 "
":meth:`~object.__eq__` 方法的对象。在 Perl 中称为 hash。"
#: ../../glossary.rst:456
msgid "dictionary comprehension"
msgstr "dictionary comprehension -- 字典推导式"
#: ../../glossary.rst:458
msgid ""
"A compact way to process all or part of the elements in an iterable and "
"return a dictionary with the results. ``results = {n: n ** 2 for n in "
"range(10)}`` generates a dictionary containing key ``n`` mapped to value ``n"
" ** 2``. See :ref:`comprehensions`."
msgstr ""
"处理一个可迭代对象中的所有或部分元素并返回结果字典的一种紧凑写法。``results = {n: n ** 2 for n in "
"range(10)}`` 将生成一个由键 ``n`` 到值 ``n ** 2`` 的映射构成的字典。参见 :ref:`comprehensions`。"
#: ../../glossary.rst:462
msgid "dictionary view"
msgstr "dictionary view -- 字典视图"
#: ../../glossary.rst:464
msgid ""
"The objects returned from :meth:`dict.keys`, :meth:`dict.values`, and "
":meth:`dict.items` are called dictionary views. They provide a dynamic view "
"on the dictionary’s entries, which means that when the dictionary changes, "
"the view reflects these changes. To force the dictionary view to become a "
"full list use ``list(dictview)``. See :ref:`dict-views`."
msgstr ""
"从 :meth:`dict.keys`, :meth:`dict.values` 和 :meth:`dict.items` "
"返回的对象被称为字典视图。它们提供了字典条目的一个动态视图,这意味着当字典改变时,视图也会相应改变。要将字典视图强制转换为真正的列表,可使用 "
"``list(dictview)``。参见 :ref:`dict-views`。"