-
-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy path3.2.po
3330 lines (2812 loc) · 117 KB
/
3.2.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
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-2024, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# Rafael Fontenelle <rffontenelle@gmail.com>, 2024
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.10\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-20 16:20+0000\n"
"PO-Revision-Date: 2022-11-05 17:23+0000\n"
"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>, 2024\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"
#: ../../whatsnew/3.2.rst:3
msgid "What's New In Python 3.2"
msgstr "Python 3.2 有什么新变化"
#: ../../whatsnew/3.2.rst:0
msgid "Author"
msgstr "作者"
#: ../../whatsnew/3.2.rst:5
msgid "Raymond Hettinger"
msgstr "Raymond Hettinger(译者:wh2099 at outlook dot com)"
#: ../../whatsnew/3.2.rst:51
msgid ""
"This article explains the new features in Python 3.2 as compared to 3.1. "
"Python 3.2 was released on February 20, 2011. It focuses on a few highlights"
" and gives a few examples. For full details, see the `Misc/NEWS "
"<https://github.com/python/cpython/blob/v3.2.6/Misc/NEWS>`_ file."
msgstr ""
#: ../../whatsnew/3.2.rst:59
msgid ":pep:`392` - Python 3.2 Release Schedule"
msgstr ":pep:`392` - Python 3.2 发布计划"
#: ../../whatsnew/3.2.rst:63
msgid "PEP 384: Defining a Stable ABI"
msgstr "PEP 384: 定义稳定的ABI"
#: ../../whatsnew/3.2.rst:65
msgid ""
"In the past, extension modules built for one Python version were often not "
"usable with other Python versions. Particularly on Windows, every feature "
"release of Python required rebuilding all extension modules that one wanted "
"to use. This requirement was the result of the free access to Python "
"interpreter internals that extension modules could use."
msgstr ""
"过去,为一个 Python 版本所构建的扩展模块通常无法用于其他 Python 版本。 特别是在 Windows 上,每一个 Python "
"新特性发布版都必须重新构建想要使用的所有扩展模块。 之所以有这样的要求是因为扩展模块可以任意访问 Python 解释器的内部对象。"
#: ../../whatsnew/3.2.rst:71
msgid ""
"With Python 3.2, an alternative approach becomes available: extension "
"modules which restrict themselves to a limited API (by defining "
"Py_LIMITED_API) cannot use many of the internals, but are constrained to a "
"set of API functions that are promised to be stable for several releases. As"
" a consequence, extension modules built for 3.2 in that mode will also work "
"with 3.3, 3.4, and so on. Extension modules that make use of details of "
"memory structures can still be built, but will need to be recompiled for "
"every feature release."
msgstr ""
"在 Python 3.2 中,则有了一种替代方式:扩展模块将自己约束于一个受限 API(通过定义 "
"Py_LIMITED_API)因而不能使用许多内部对象,仅限使用一组承诺会在多个发布版中保持稳定的 API 函数。 作为其结果,在这种模式下为 3.2 "
"构建的扩展模块也将能在 3.3、3.4 等版本中运行。 使用了内存结构体细节数据的扩展模块仍然可以被构建,但将需要为每个新特性发布版重新编译。"
#: ../../whatsnew/3.2.rst:82
msgid ":pep:`384` - Defining a Stable ABI"
msgstr ":pep:`384` - 定义稳定的ABI"
#: ../../whatsnew/3.2.rst:83
msgid "PEP written by Martin von Löwis."
msgstr "PEP 由 Martin von Löwis 撰写"
#: ../../whatsnew/3.2.rst:87
msgid "PEP 389: Argparse Command Line Parsing Module"
msgstr "PEP 389: Argparse 命令行解析模块"
#: ../../whatsnew/3.2.rst:89
msgid ""
"A new module for command line parsing, :mod:`argparse`, was introduced to "
"overcome the limitations of :mod:`optparse` which did not provide support "
"for positional arguments (not just options), subcommands, required options "
"and other common patterns of specifying and validating options."
msgstr ""
#: ../../whatsnew/3.2.rst:94
msgid ""
"This module has already had widespread success in the community as a third-"
"party module. Being more fully featured than its predecessor, the "
":mod:`argparse` module is now the preferred module for command-line "
"processing. The older module is still being kept available because of the "
"substantial amount of legacy code that depends on it."
msgstr ""
#: ../../whatsnew/3.2.rst:100
msgid ""
"Here's an annotated example parser showing features like limiting results to"
" a set of choices, specifying a *metavar* in the help screen, validating "
"that one or more positional arguments is present, and making a required "
"option::"
msgstr ""
#: ../../whatsnew/3.2.rst:119
msgid "Example of calling the parser on a command string::"
msgstr "在命令字符串中调用解析器的示例::"
#: ../../whatsnew/3.2.rst:130
msgid "Example of the parser's automatically generated help::"
msgstr "解释器自动生成的帮助示例::"
#: ../../whatsnew/3.2.rst:149
msgid ""
"An especially nice :mod:`argparse` feature is the ability to define "
"subparsers, each with their own argument patterns and help displays::"
msgstr "一个非常好的 :mod:`argparse` 特性是可以定义子解析器,每个子解析器拥有它们自己的参数模式和帮助显示::"
#: ../../whatsnew/3.2.rst:175
msgid ":pep:`389` - New Command Line Parsing Module"
msgstr ":pep:`389` - 新的命令行解析模块"
#: ../../whatsnew/3.2.rst:175
msgid "PEP written by Steven Bethard."
msgstr "PEP 由 Steven Bethard 撰写"
#: ../../whatsnew/3.2.rst:177
msgid ""
":ref:`upgrading-optparse-code` for details on the differences from "
":mod:`optparse`."
msgstr "参阅 :ref:`upgrading-optparse-code` 了解与 :mod:`optparse` 的差异的细节。"
#: ../../whatsnew/3.2.rst:181
msgid "PEP 391: Dictionary Based Configuration for Logging"
msgstr "PEP 391: 基于字典的日志配置"
#: ../../whatsnew/3.2.rst:183
msgid ""
"The :mod:`logging` module provided two kinds of configuration, one style "
"with function calls for each option or another style driven by an external "
"file saved in a :mod:`ConfigParser` format. Those options did not provide "
"the flexibility to create configurations from JSON or YAML files, nor did "
"they support incremental configuration, which is needed for specifying "
"logger options from a command line."
msgstr ""
#: ../../whatsnew/3.2.rst:190
msgid ""
"To support a more flexible style, the module now offers "
":func:`logging.config.dictConfig` for specifying logging configuration with "
"plain Python dictionaries. The configuration options include formatters, "
"handlers, filters, and loggers. Here's a working example of a configuration"
" dictionary::"
msgstr ""
#: ../../whatsnew/3.2.rst:214
msgid ""
"If that dictionary is stored in a file called :file:`conf.json`, it can be "
"loaded and called with code like this::"
msgstr ""
#: ../../whatsnew/3.2.rst:229
msgid ":pep:`391` - Dictionary Based Configuration for Logging"
msgstr ":pep:`391` - 基于字典的日志配置"
#: ../../whatsnew/3.2.rst:230
msgid "PEP written by Vinay Sajip."
msgstr "PEP 由 Vinay Sajip 撰写"
#: ../../whatsnew/3.2.rst:234
msgid "PEP 3148: The ``concurrent.futures`` module"
msgstr "PEP 3148: ``concurrent.futures`` 模块"
#: ../../whatsnew/3.2.rst:236
msgid ""
"Code for creating and managing concurrency is being collected in a new top-"
"level namespace, *concurrent*. Its first member is a *futures* package "
"which provides a uniform high-level interface for managing threads and "
"processes."
msgstr ""
#: ../../whatsnew/3.2.rst:240
msgid ""
"The design for :mod:`concurrent.futures` was inspired by the "
"*java.util.concurrent* package. In that model, a running call and its "
"result are represented by a :class:`~concurrent.futures.Future` object that "
"abstracts features common to threads, processes, and remote procedure calls."
" That object supports status checks (running or done), timeouts, "
"cancellations, adding callbacks, and access to results or exceptions."
msgstr ""
#: ../../whatsnew/3.2.rst:247
msgid ""
"The primary offering of the new module is a pair of executor classes for "
"launching and managing calls. The goal of the executors is to make it "
"easier to use existing tools for making parallel calls. They save the effort"
" needed to setup a pool of resources, launch the calls, create a results "
"queue, add time-out handling, and limit the total number of threads, "
"processes, or remote procedure calls."
msgstr ""
#: ../../whatsnew/3.2.rst:254
msgid ""
"Ideally, each application should share a single executor across multiple "
"components so that process and thread limits can be centrally managed. This"
" solves the design challenge that arises when each component has its own "
"competing strategy for resource management."
msgstr ""
#: ../../whatsnew/3.2.rst:259
msgid ""
"Both classes share a common interface with three methods: "
":meth:`~concurrent.futures.Executor.submit` for scheduling a callable and "
"returning a :class:`~concurrent.futures.Future` object; "
":meth:`~concurrent.futures.Executor.map` for scheduling many asynchronous "
"calls at a time, and :meth:`~concurrent.futures.Executor.shutdown` for "
"freeing resources. The class is a :term:`context manager` and can be used "
"in a :keyword:`with` statement to assure that resources are automatically "
"released when currently pending futures are done executing."
msgstr ""
#: ../../whatsnew/3.2.rst:268
msgid ""
"A simple of example of :class:`~concurrent.futures.ThreadPoolExecutor` is a "
"launch of four parallel threads for copying files::"
msgstr ""
#: ../../whatsnew/3.2.rst:281
msgid ":pep:`3148` - Futures -- Execute Computations Asynchronously"
msgstr ":pep:`3148` -- futures - 异步执行指令"
#: ../../whatsnew/3.2.rst:281
msgid "PEP written by Brian Quinlan."
msgstr "PEP 由 Brian Quinlan 撰写"
#: ../../whatsnew/3.2.rst:283
msgid ""
":ref:`Code for Threaded Parallel URL reads<threadpoolexecutor-example>`, an "
"example using threads to fetch multiple web pages in parallel."
msgstr ""
#: ../../whatsnew/3.2.rst:286
msgid ""
":ref:`Code for computing prime numbers in parallel<processpoolexecutor-"
"example>`, an example demonstrating "
":class:`~concurrent.futures.ProcessPoolExecutor`."
msgstr ""
#: ../../whatsnew/3.2.rst:292
msgid "PEP 3147: PYC Repository Directories"
msgstr "PEP 3147: PYC 仓库目录"
#: ../../whatsnew/3.2.rst:294
msgid ""
"Python's scheme for caching bytecode in *.pyc* files did not work well in "
"environments with multiple Python interpreters. If one interpreter "
"encountered a cached file created by another interpreter, it would recompile"
" the source and overwrite the cached file, thus losing the benefits of "
"caching."
msgstr ""
#: ../../whatsnew/3.2.rst:299
msgid ""
"The issue of \"pyc fights\" has become more pronounced as it has become "
"commonplace for Linux distributions to ship with multiple versions of "
"Python. These conflicts also arise with CPython alternatives such as Unladen"
" Swallow."
msgstr ""
#: ../../whatsnew/3.2.rst:303
msgid ""
"To solve this problem, Python's import machinery has been extended to use "
"distinct filenames for each interpreter. Instead of Python 3.2 and Python "
"3.3 and Unladen Swallow each competing for a file called \"mymodule.pyc\", "
"they will now look for \"mymodule.cpython-32.pyc\", "
"\"mymodule.cpython-33.pyc\", and \"mymodule.unladen10.pyc\". And to prevent"
" all of these new files from cluttering source directories, the *pyc* files "
"are now collected in a \"__pycache__\" directory stored under the package "
"directory."
msgstr ""
#: ../../whatsnew/3.2.rst:311
msgid ""
"Aside from the filenames and target directories, the new scheme has a few "
"aspects that are visible to the programmer:"
msgstr ""
#: ../../whatsnew/3.2.rst:314
msgid ""
"Imported modules now have a :attr:`__cached__` attribute which stores the "
"name of the actual file that was imported:"
msgstr ""
#: ../../whatsnew/3.2.rst:321
msgid ""
"The tag that is unique to each interpreter is accessible from the :mod:`imp`"
" module:"
msgstr "针对每个解释器的唯一标签可以从 :mod:`imp` 模块访问:"
#: ../../whatsnew/3.2.rst:328
msgid ""
"Scripts that try to deduce source filename from the imported file now need "
"to be smarter. It is no longer sufficient to simply strip the \"c\" from a "
"\".pyc\" filename. Instead, use the new functions in the :mod:`imp` module:"
msgstr ""
#: ../../whatsnew/3.2.rst:337
msgid ""
"The :mod:`py_compile` and :mod:`compileall` modules have been updated to "
"reflect the new naming convention and target directory. The command-line "
"invocation of *compileall* has new options: ``-i`` for specifying a list of "
"files and directories to compile and ``-b`` which causes bytecode files to "
"be written to their legacy location rather than *__pycache__*."
msgstr ""
#: ../../whatsnew/3.2.rst:344
msgid ""
"The :mod:`importlib.abc` module has been updated with new :term:`abstract "
"base classes <abstract base class>` for loading bytecode files. The "
"obsolete ABCs, :class:`~importlib.abc.PyLoader` and "
":class:`~importlib.abc.PyPycLoader`, have been deprecated (instructions on "
"how to stay Python 3.1 compatible are included with the documentation)."
msgstr ""
#: ../../whatsnew/3.2.rst:352
msgid ":pep:`3147` - PYC Repository Directories"
msgstr ":pep:`3147` - PYC 仓库目录"
#: ../../whatsnew/3.2.rst:353 ../../whatsnew/3.2.rst:384
msgid "PEP written by Barry Warsaw."
msgstr "PEP 由 Barry Warsaw 撰写"
#: ../../whatsnew/3.2.rst:357
msgid "PEP 3149: ABI Version Tagged .so Files"
msgstr "PEP 3149: 带有 ABI 版本标签的 .so 文件"
#: ../../whatsnew/3.2.rst:359
msgid ""
"The PYC repository directory allows multiple bytecode cache files to be co-"
"located. This PEP implements a similar mechanism for shared object files by"
" giving them a common directory and distinct names for each version."
msgstr ""
#: ../../whatsnew/3.2.rst:363
msgid ""
"The common directory is \"pyshared\" and the file names are made distinct by"
" identifying the Python implementation (such as CPython, PyPy, Jython, "
"etc.), the major and minor version numbers, and optional build flags (such "
"as \"d\" for debug, \"m\" for pymalloc, \"u\" for wide-unicode). For an "
"arbitrary package \"foo\", you may see these files when the distribution "
"package is installed::"
msgstr ""
#: ../../whatsnew/3.2.rst:372
msgid ""
"In Python itself, the tags are accessible from functions in the "
":mod:`sysconfig` module::"
msgstr "对于 Python 本身,可以通过 :mod:`sysconfig` 模块中的函数来访问这些标签::"
#: ../../whatsnew/3.2.rst:383
msgid ":pep:`3149` - ABI Version Tagged .so Files"
msgstr ":pep:`3149` - 带有 ABI 版本标签的 .so 文件"
#: ../../whatsnew/3.2.rst:388
msgid "PEP 3333: Python Web Server Gateway Interface v1.0.1"
msgstr "PEP 3333: Python Web服务器网关接口v1.0.1"
#: ../../whatsnew/3.2.rst:390
msgid ""
"This informational PEP clarifies how bytes/text issues are to be handled by "
"the WSGI protocol. The challenge is that string handling in Python 3 is "
"most conveniently handled with the :class:`str` type even though the HTTP "
"protocol is itself bytes oriented."
msgstr ""
#: ../../whatsnew/3.2.rst:395
msgid ""
"The PEP differentiates so-called *native strings* that are used for "
"request/response headers and metadata versus *byte strings* which are used "
"for the bodies of requests and responses."
msgstr ""
#: ../../whatsnew/3.2.rst:399
msgid ""
"The *native strings* are always of type :class:`str` but are restricted to "
"code points between *U+0000* through *U+00FF* which are translatable to "
"bytes using *Latin-1* encoding. These strings are used for the keys and "
"values in the environment dictionary and for response headers and statuses "
"in the :func:`start_response` function. They must follow :rfc:`2616` with "
"respect to encoding. That is, they must either be *ISO-8859-1* characters or"
" use :rfc:`2047` MIME encoding."
msgstr ""
#: ../../whatsnew/3.2.rst:407
msgid ""
"For developers porting WSGI applications from Python 2, here are the salient"
" points:"
msgstr ""
#: ../../whatsnew/3.2.rst:410
msgid ""
"If the app already used strings for headers in Python 2, no change is "
"needed."
msgstr ""
#: ../../whatsnew/3.2.rst:412
msgid ""
"If instead, the app encoded output headers or decoded input headers, then "
"the headers will need to be re-encoded to Latin-1. For example, an output "
"header encoded in utf-8 was using ``h.encode('utf-8')`` now needs to convert"
" from bytes to native strings using ``h.encode('utf-8').decode('latin-1')``."
msgstr ""
#: ../../whatsnew/3.2.rst:417
msgid ""
"Values yielded by an application or sent using the :meth:`write` method must"
" be byte strings. The :func:`start_response` function and environ must use "
"native strings. The two cannot be mixed."
msgstr ""
#: ../../whatsnew/3.2.rst:421
msgid ""
"For server implementers writing CGI-to-WSGI pathways or other CGI-style "
"protocols, the users must to be able access the environment using native "
"strings even though the underlying platform may have a different convention."
" To bridge this gap, the :mod:`wsgiref` module has a new function, "
":func:`wsgiref.handlers.read_environ` for transcoding CGI variables from "
":attr:`os.environ` into native strings and returning a new dictionary."
msgstr ""
#: ../../whatsnew/3.2.rst:430
msgid ":pep:`3333` - Python Web Server Gateway Interface v1.0.1"
msgstr ":pep:`3333` - Python Web服务器网关接口v1.0.1"
#: ../../whatsnew/3.2.rst:431
msgid "PEP written by Phillip Eby."
msgstr "PEP 由 Phillip Eby 撰写"
#: ../../whatsnew/3.2.rst:435
msgid "Other Language Changes"
msgstr "其他语言特性修改"
#: ../../whatsnew/3.2.rst:437
msgid "Some smaller changes made to the core Python language are:"
msgstr "对Python 语言核心进行的小改动:"
#: ../../whatsnew/3.2.rst:439
msgid ""
"String formatting for :func:`format` and :meth:`str.format` gained new "
"capabilities for the format character **#**. Previously, for integers in "
"binary, octal, or hexadecimal, it caused the output to be prefixed with "
"'0b', '0o', or '0x' respectively. Now it can also handle floats, complex, "
"and Decimal, causing the output to always have a decimal point even when no "
"digits follow it."
msgstr ""
#: ../../whatsnew/3.2.rst:451
msgid ""
"(Suggested by Mark Dickinson and implemented by Eric Smith in "
":issue:`7094`.)"
msgstr ""
#: ../../whatsnew/3.2.rst:453
msgid ""
"There is also a new :meth:`str.format_map` method that extends the "
"capabilities of the existing :meth:`str.format` method by accepting "
"arbitrary :term:`mapping` objects. This new method makes it possible to use"
" string formatting with any of Python's many dictionary-like objects such as"
" :class:`~collections.defaultdict`, :class:`~shelve.Shelf`, "
":class:`~configparser.ConfigParser`, or :mod:`dbm`. It is also useful with "
"custom :class:`dict` subclasses that normalize keys before look-up or that "
"supply a :meth:`__missing__` method for unknown keys::"
msgstr ""
#: ../../whatsnew/3.2.rst:480
msgid ""
"(Suggested by Raymond Hettinger and implemented by Eric Smith in "
":issue:`6081`.)"
msgstr "(由 Raymond Hettinger 提议并由 Eric Smith 在 :issue:`6081` 中贡献。)"
#: ../../whatsnew/3.2.rst:483
msgid ""
"The interpreter can now be started with a quiet option, ``-q``, to prevent "
"the copyright and version information from being displayed in the "
"interactive mode. The option can be introspected using the "
":attr:`sys.flags` attribute:"
msgstr ""
#: ../../whatsnew/3.2.rst:495
msgid "(Contributed by Marcin Wojdyr in :issue:`1772833`)."
msgstr "(由 Marcin Wojdyr 在 :issue:`1772833` 中贡献。)"
#: ../../whatsnew/3.2.rst:497
msgid ""
"The :func:`hasattr` function works by calling :func:`getattr` and detecting "
"whether an exception is raised. This technique allows it to detect methods "
"created dynamically by :meth:`__getattr__` or :meth:`__getattribute__` which"
" would otherwise be absent from the class dictionary. Formerly, *hasattr* "
"would catch any exception, possibly masking genuine errors. Now, *hasattr* "
"has been tightened to only catch :exc:`AttributeError` and let other "
"exceptions pass through::"
msgstr ""
#: ../../whatsnew/3.2.rst:516
msgid ""
"(Discovered by Yury Selivanov and fixed by Benjamin Peterson; "
":issue:`9666`.)"
msgstr "(由 Yury Selivanov 发现并由 Benjamin Peterson 修正;:issue:`9666`。)"
#: ../../whatsnew/3.2.rst:518
msgid ""
"The :func:`str` of a float or complex number is now the same as its "
":func:`repr`. Previously, the :func:`str` form was shorter but that just "
"caused confusion and is no longer needed now that the shortest possible "
":func:`repr` is displayed by default:"
msgstr ""
#: ../../whatsnew/3.2.rst:529
msgid "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)"
msgstr "(由 Mark Dickinson 提议并实现;:issue:`9337`。)"
#: ../../whatsnew/3.2.rst:531
msgid ""
":class:`memoryview` objects now have a :meth:`~memoryview.release()` method "
"and they also now support the context management protocol. This allows "
"timely release of any resources that were acquired when requesting a buffer "
"from the original object."
msgstr ""
#: ../../whatsnew/3.2.rst:540
msgid "(Added by Antoine Pitrou; :issue:`9757`.)"
msgstr "(由 Antoine Pitrou 添加;:issue:`9757`。)"
#: ../../whatsnew/3.2.rst:542
msgid ""
"Previously it was illegal to delete a name from the local namespace if it "
"occurs as a free variable in a nested block::"
msgstr ""
#: ../../whatsnew/3.2.rst:551
msgid ""
"This is now allowed. Remember that the target of an :keyword:`except` "
"clause is cleared, so this code which used to work with Python 2.6, raised a"
" :exc:`SyntaxError` with Python 3.1 and now works again::"
msgstr ""
#: ../../whatsnew/3.2.rst:564
msgid "(See :issue:`4617`.)"
msgstr "(参见 :issue:`4617`。)"
#: ../../whatsnew/3.2.rst:566
msgid ""
"The internal :c:type:`structsequence` tool now creates subclasses of tuple. "
"This means that C structures like those returned by :func:`os.stat`, "
":func:`time.gmtime`, and :attr:`sys.version_info` now work like a "
":term:`named tuple` and now work with functions and methods that expect a "
"tuple as an argument. This is a big step forward in making the C structures"
" as flexible as their pure Python counterparts:"
msgstr ""
#: ../../whatsnew/3.2.rst:579
msgid ""
"(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by "
"Benjamin Peterson in :issue:`8413`.)"
msgstr ""
#: ../../whatsnew/3.2.rst:582
msgid ""
"Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` "
"environment variable as an alternative to using ``-W`` at the command line:"
msgstr ""
#: ../../whatsnew/3.2.rst:589
msgid ""
"(Suggested by Barry Warsaw and implemented by Philip Jenvey in "
":issue:`7301`.)"
msgstr ""
#: ../../whatsnew/3.2.rst:591
msgid ""
"A new warning category, :exc:`ResourceWarning`, has been added. It is "
"emitted when potential issues with resource consumption or cleanup are "
"detected. It is silenced by default in normal release builds but can be "
"enabled through the means provided by the :mod:`warnings` module, or on the "
"command line."
msgstr ""
#: ../../whatsnew/3.2.rst:597
msgid ""
"A :exc:`ResourceWarning` is issued at interpreter shutdown if the "
":data:`gc.garbage` list isn't empty, and if :attr:`gc.DEBUG_UNCOLLECTABLE` "
"is set, all uncollectable objects are printed. This is meant to make the "
"programmer aware that their code contains object finalization issues."
msgstr ""
#: ../../whatsnew/3.2.rst:602
msgid ""
"A :exc:`ResourceWarning` is also issued when a :term:`file object` is "
"destroyed without having been explicitly closed. While the deallocator for "
"such object ensures it closes the underlying operating system resource "
"(usually, a file descriptor), the delay in deallocating the object could "
"produce various issues, especially under Windows. Here is an example of "
"enabling the warning from the command line:"
msgstr ""
#: ../../whatsnew/3.2.rst:616
msgid ""
"(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and "
":issue:`477863`.)"
msgstr ""
#: ../../whatsnew/3.2.rst:618
msgid ""
":class:`range` objects now support *index* and *count* methods. This is part"
" of an effort to make more objects fully implement the "
":class:`collections.Sequence` :term:`abstract base class`. As a result, the"
" language will have a more uniform API. In addition, :class:`range` objects"
" now support slicing and negative indices, even with values larger than "
":attr:`sys.maxsize`. This makes *range* more interoperable with lists::"
msgstr ""
#: ../../whatsnew/3.2.rst:634
msgid ""
"(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky "
"in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)"
msgstr ""
"(由 Daniel Stutzbach 在 :issue:`9213` 中贡献,由 Alexander Belopolsky 在 "
":issue:`2690` 中贡献,由 Nick Coghlan 在 :issue:`10889` 中贡献。)"
#: ../../whatsnew/3.2.rst:637
msgid ""
"The :func:`callable` builtin function from Py2.x was resurrected. It "
"provides a concise, readable alternative to using an :term:`abstract base "
"class` in an expression like ``isinstance(x, collections.Callable)``:"
msgstr ""
#: ../../whatsnew/3.2.rst:646
msgid "(See :issue:`10518`.)"
msgstr "(参见 :issue:`10518`。)"
#: ../../whatsnew/3.2.rst:648
msgid ""
"Python's import mechanism can now load modules installed in directories with"
" non-ASCII characters in the path name. This solved an aggravating problem "
"with home directories for users with non-ASCII characters in their "
"usernames."
msgstr ""
#: ../../whatsnew/3.2.rst:652
msgid "(Required extensive work by Victor Stinner in :issue:`9425`.)"
msgstr "(需要 Victor Stinner 在 :issue:`9425` 中做大量工作。)"
#: ../../whatsnew/3.2.rst:656
msgid "New, Improved, and Deprecated Modules"
msgstr "新增,改进和弃用的模块"
#: ../../whatsnew/3.2.rst:658
msgid ""
"Python's standard library has undergone significant maintenance efforts and "
"quality improvements."
msgstr "Python 标准库经过了大量的维护工作和质量改进。"
#: ../../whatsnew/3.2.rst:661
msgid ""
"The biggest news for Python 3.2 is that the :mod:`email` package, "
":mod:`mailbox` module, and :mod:`nntplib` modules now work correctly with "
"the bytes/text model in Python 3. For the first time, there is correct "
"handling of messages with mixed encodings."
msgstr ""
#: ../../whatsnew/3.2.rst:666
msgid ""
"Throughout the standard library, there has been more careful attention to "
"encodings and text versus bytes issues. In particular, interactions with "
"the operating system are now better able to exchange non-ASCII data using "
"the Windows MBCS encoding, locale-aware encodings, or UTF-8."
msgstr ""
#: ../../whatsnew/3.2.rst:671
msgid ""
"Another significant win is the addition of substantially better support for "
"*SSL* connections and security certificates."
msgstr ""
#: ../../whatsnew/3.2.rst:674
msgid ""
"In addition, more classes now implement a :term:`context manager` to support"
" convenient and reliable resource clean-up using a :keyword:`with` "
"statement."
msgstr ""
#: ../../whatsnew/3.2.rst:678
msgid "email"
msgstr "email"
#: ../../whatsnew/3.2.rst:680
msgid ""
"The usability of the :mod:`email` package in Python 3 has been mostly fixed "
"by the extensive efforts of R. David Murray. The problem was that emails "
"are typically read and stored in the form of :class:`bytes` rather than "
":class:`str` text, and they may contain multiple encodings within a single "
"email. So, the email package had to be extended to parse and generate email"
" messages in bytes format."
msgstr ""
#: ../../whatsnew/3.2.rst:687
msgid ""
"New functions :func:`~email.message_from_bytes` and "
":func:`~email.message_from_binary_file`, and new classes "
":class:`~email.parser.BytesFeedParser` and "
":class:`~email.parser.BytesParser` allow binary message data to be parsed "
"into model objects."
msgstr ""
#: ../../whatsnew/3.2.rst:692
msgid ""
"Given bytes input to the model, :meth:`~email.message.Message.get_payload` "
"will by default decode a message body that has a :mailheader:`Content-"
"Transfer-Encoding` of *8bit* using the charset specified in the MIME headers"
" and return the resulting string."
msgstr ""
#: ../../whatsnew/3.2.rst:697
msgid ""
"Given bytes input to the model, :class:`~email.generator.Generator` will "
"convert message bodies that have a :mailheader:`Content-Transfer-Encoding` "
"of *8bit* to instead have a *7bit* :mailheader:`Content-Transfer-Encoding`."
msgstr ""
#: ../../whatsnew/3.2.rst:701
msgid ""
"Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ "
"-encoded using the *unknown-8bit* character set."
msgstr ""
#: ../../whatsnew/3.2.rst:704
msgid ""
"A new class :class:`~email.generator.BytesGenerator` produces bytes as "
"output, preserving any unchanged non-ASCII data that was present in the "
"input used to build the model, including message bodies with a "
":mailheader:`Content-Transfer-Encoding` of *8bit*."
msgstr ""
#: ../../whatsnew/3.2.rst:709
msgid ""
"The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string "
"for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a "
"new method, :meth:`~smtplib.SMTP.send_message` accepts a "
":class:`~email.message.Message` object and can optionally obtain the "
"*from_addr* and *to_addrs* addresses directly from the object."
msgstr ""
#: ../../whatsnew/3.2.rst:715
msgid ""
"(Proposed and implemented by R. David Murray, :issue:`4661` and "
":issue:`10321`.)"
msgstr ""
#: ../../whatsnew/3.2.rst:718
msgid "elementtree"
msgstr "elementtree"
#: ../../whatsnew/3.2.rst:720
msgid ""
"The :mod:`xml.etree.ElementTree` package and its "
":mod:`xml.etree.cElementTree` counterpart have been updated to version 1.3."
msgstr ""
":mod:`xml.etree.ElementTree` 包及其对应的 :mod:`xml.etree.cElementTree` 已更新至 1.3 "
"版。"
#: ../../whatsnew/3.2.rst:723
msgid "Several new and useful functions and methods have been added:"
msgstr "新增了几个有用的函数和方法:"
#: ../../whatsnew/3.2.rst:725
msgid ""
":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document "
"from a sequence of fragments"
msgstr ":func:`xml.etree.ElementTree.fromstringlist` 可根据一系列片段生成 XML 文档"
#: ../../whatsnew/3.2.rst:727
msgid ""
":func:`xml.etree.ElementTree.register_namespace` for registering a global "
"namespace prefix"
msgstr ":func:`xml.etree.ElementTree.register_namespace` 用于注册全局命名空间前缀"
#: ../../whatsnew/3.2.rst:729
msgid ""
":func:`xml.etree.ElementTree.tostringlist` for string representation "
"including all sublists"
msgstr ":func:`xml.etree.ElementTree.tostringlist` 用于字符串表示包括所有子列表"
#: ../../whatsnew/3.2.rst:731
msgid ""
":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of "
"zero or more elements"
msgstr ":meth:`xml.etree.ElementTree.Element.extend` 用于添加包含零个或多个元素的序列"
#: ../../whatsnew/3.2.rst:733
msgid ""
":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and "
"subelements"
msgstr ":meth:`xml.etree.ElementTree.Element.iterfind` 可搜索元素和子元素"
#: ../../whatsnew/3.2.rst:735
msgid ""
":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over "
"an element and its subelements"
msgstr ":meth:`xml.etree.ElementTree.Element.itertext` 创建一个包含指定元素及其子元素的文本迭代器。"
#: ../../whatsnew/3.2.rst:737
msgid ""
":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element"
msgstr ":meth:`xml.etree.ElementTree.TreeBuilder.end` 关闭当前元素"
#: ../../whatsnew/3.2.rst:738
msgid ""
":meth:`xml.etree.ElementTree.TreeBuilder.doctype` handles a doctype "
"declaration"
msgstr ":meth:`xml.etree.ElementTree.TreeBuilder.doctype` 处理 doctype 声明"
#: ../../whatsnew/3.2.rst:741
msgid "Two methods have been deprecated:"
msgstr "两个方法被弃用:"
#: ../../whatsnew/3.2.rst:743
msgid ":meth:`xml.etree.ElementTree.getchildren` use ``list(elem)`` instead."
msgstr ":meth:`xml.etree.ElementTree.getchildren` 被 ``list(elem)`` 替代。"
#: ../../whatsnew/3.2.rst:744
msgid ""
":meth:`xml.etree.ElementTree.getiterator` use ``Element.iter`` instead."
msgstr ":meth:`xml.etree.ElementTree.getiterator` 被 ``Element.iter`` 替代。"
#: ../../whatsnew/3.2.rst:746
msgid ""
"For details of the update, see `Introducing ElementTree "
"<https://web.archive.org/web/20200703234532/http://effbot.org/zone/elementtree-13-intro.htm>`_"
" on Fredrik Lundh's website."
msgstr ""
#: ../../whatsnew/3.2.rst:750
msgid "(Contributed by Florent Xicluna and Fredrik Lundh, :issue:`6472`.)"
msgstr "(由 Florent Xicluna 和 Fredrik Lundh 在 :issue:`6472` 中贡献。)"
#: ../../whatsnew/3.2.rst:753
msgid "functools"
msgstr "functools"
#: ../../whatsnew/3.2.rst:755
msgid ""
"The :mod:`functools` module includes a new decorator for caching function "
"calls. :func:`functools.lru_cache` can save repeated queries to an external"
" resource whenever the results are expected to be the same."
msgstr ""
#: ../../whatsnew/3.2.rst:759
msgid ""
"For example, adding a caching decorator to a database query function can "
"save database accesses for popular searches:"
msgstr ""
#: ../../whatsnew/3.2.rst:772
msgid ""
"To help with choosing an effective cache size, the wrapped function is "
"instrumented for tracking cache statistics:"
msgstr ""
#: ../../whatsnew/3.2.rst:778
msgid ""
"If the phonelist table gets updated, the outdated contents of the cache can "
"be cleared with:"
msgstr ""
#: ../../whatsnew/3.2.rst:783
msgid ""
"(Contributed by Raymond Hettinger and incorporating design ideas from Jim "
"Baker, Miki Tebeka, and Nick Coghlan; see `recipe 498245 "
"<https://code.activestate.com/recipes/498245>`_\\, `recipe 577479 "
"<https://code.activestate.com/recipes/577479>`_\\, :issue:`10586`, and "
":issue:`10593`.)"
msgstr ""
#: ../../whatsnew/3.2.rst:789
msgid ""
"The :func:`functools.wraps` decorator now adds a :attr:`__wrapped__` "
"attribute pointing to the original callable function. This allows wrapped "
"functions to be introspected. It also copies :attr:`__annotations__` if "
"defined. And now it also gracefully skips over missing attributes such as "
":attr:`__doc__` which might not be defined for the wrapped callable."
msgstr ""
#: ../../whatsnew/3.2.rst:795
msgid ""
"In the above example, the cache can be removed by recovering the original "
"function:"
msgstr ""
#: ../../whatsnew/3.2.rst:800
msgid ""
"(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and "
":issue:`8814`.)"
msgstr ""
"(由 Nick Coghlan 和 Terrence Cole 在 :issue:`9567`, :issue:`3445` 和 "
":issue:`8814` 中贡献。)"
#: ../../whatsnew/3.2.rst:803
msgid ""
"To help write classes with rich comparison methods, a new decorator "
":func:`functools.total_ordering` will use existing equality and inequality "
"methods to fill in the remaining methods."
msgstr ""
"为帮助编写具有丰富比较方法的类,新增的装饰器 :func:`functools.total_ordering` "
"将使用现有的相等和不相等方法来填充其余的方法。"
#: ../../whatsnew/3.2.rst:807
msgid ""
"For example, supplying *__eq__* and *__lt__* will enable "
":func:`~functools.total_ordering` to fill-in *__le__*, *__gt__* and "
"*__ge__*::"
msgstr ""
"例如,提供 *__eq__* and *__lt__* 将启用 :func:`~functools.total_ordering` 来填充 "
"*__le__*, *__gt__* 和 *__ge__*::"
#: ../../whatsnew/3.2.rst:820
msgid ""
"With the *total_ordering* decorator, the remaining comparison methods are "
"filled in automatically."
msgstr "使用 *total_ordering* 装饰器时,将会自动填充其余的比较方法。"
#: ../../whatsnew/3.2.rst:823 ../../whatsnew/3.2.rst:835
#: ../../whatsnew/3.2.rst:879 ../../whatsnew/3.2.rst:900
#: ../../whatsnew/3.2.rst:914 ../../whatsnew/3.2.rst:1784
#: ../../whatsnew/3.2.rst:1829
msgid "(Contributed by Raymond Hettinger.)"
msgstr "(由 Raymond Hettinger 贡献。)"
#: ../../whatsnew/3.2.rst:825
msgid ""
"To aid in porting programs from Python 2, the :func:`functools.cmp_to_key` "
"function converts an old-style comparison function to modern :term:`key "
"function`:"
msgstr ""
"为帮助移植 Python 2 程序,:func:`functools.cmp_to_key` 函数可将旧式的比较函数转换为新式的 :term:`key "
"function`:"
#: ../../whatsnew/3.2.rst:832
msgid ""
"For sorting examples and a brief sorting tutorial, see the `Sorting HowTo "
"<https://wiki.python.org/moin/HowTo/Sorting/>`_ tutorial."
msgstr ""
#: ../../whatsnew/3.2.rst:838
msgid "itertools"
msgstr "itertools"
#: ../../whatsnew/3.2.rst:840
msgid ""
"The :mod:`itertools` module has a new :func:`~itertools.accumulate` function"
" modeled on APL's *scan* operator and Numpy's *accumulate* function:"
msgstr ""
#: ../../whatsnew/3.2.rst:851
msgid ""
"For an example using :func:`~itertools.accumulate`, see the :ref:`examples "
"for the random module <random-examples>`."
msgstr ""
#: ../../whatsnew/3.2.rst:854
msgid ""
"(Contributed by Raymond Hettinger and incorporating design suggestions from "
"Mark Dickinson.)"
msgstr ""
#: ../../whatsnew/3.2.rst:858
msgid "collections"
msgstr "collections"
#: ../../whatsnew/3.2.rst:860
msgid ""
"The :class:`collections.Counter` class now has two forms of in-place "
"subtraction, the existing *-=* operator for `saturating subtraction "
"<https://en.wikipedia.org/wiki/Saturation_arithmetic>`_ and the new "
":meth:`~collections.Counter.subtract` method for regular subtraction. The "
"former is suitable for `multisets <https://en.wikipedia.org/wiki/Multiset>`_"
" which only have positive counts, and the latter is more suitable for use "
"cases that allow negative counts:"
msgstr ""
#: ../../whatsnew/3.2.rst:881