-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2to3.html
More file actions
752 lines (679 loc) · 60.5 KB
/
2to3.html
File metadata and controls
752 lines (679 loc) · 60.5 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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_TW">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>27.7. 2to3 - 自動將 Python 2的程式碼轉成 Python 3 — Python 3.7.0 說明文件</title>
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/translations.js"></script>
<script type="text/javascript" src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="在 Python 3.7.0 說明文件 中搜尋"
href="../_static/opensearch.xml"/>
<link rel="author" title="關於這些文件" href="../about.html" />
<link rel="index" title="索引" href="../genindex.html" />
<link rel="search" title="搜尋" href="../search.html" />
<link rel="copyright" title="Copyright" href="../copyright.html" />
<link rel="next" title="27.8. test — Regression tests package for Python" href="test.html" />
<link rel="prev" title="27.6. unittest.mock — getting started" href="unittest.mock-examples.html" />
<link rel="shortcut icon" type="image/png" href="../_static/py.png" />
<link rel="canonical" href="https://docs.python.org/3/library/2to3.html" />
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/switchers.js"></script>
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>瀏覽</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模組索引"
>模組</a> |</li>
<li class="right" >
<a href="test.html" title="27.8. test — Regression tests package for Python"
accesskey="N">下一頁</a> |</li>
<li class="right" >
<a href="unittest.mock-examples.html" title="27.6. unittest.mock — getting started"
accesskey="P">上一頁</a> |</li>
<li><img src="../_static/py.png" alt=""
style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> »</li>
<li>
<span class="language_switcher_placeholder">zh_TW</span>
<span class="version_switcher_placeholder">3.7.0</span>
<a href="../index.html">Documentation </a> »
</li>
<li class="nav-item nav-item-1"><a href="index.html" >Python 標準函式庫 (Standard Library)</a> »</li>
<li class="nav-item nav-item-2"><a href="development.html" accesskey="U">27. 開發工具</a> »</li>
<li class="right">
<div class="inline-search" style="display: none" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('.inline-search').show(0);</script>
|
</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="to3-automated-python-2-to-3-code-translation">
<span id="to3-reference"></span><h1>27.7. 2to3 - 自動將 Python 2的程式碼轉成 Python 3<a class="headerlink" href="#to3-automated-python-2-to-3-code-translation" title="本標題的永久連結">¶</a></h1>
<p>2to3 is a Python program that reads Python 2.x source code and applies a series
of <em>fixers</em> to transform it into valid Python 3.x code. The standard library
contains a rich set of fixers that will handle almost all code. 2to3 supporting
library <a class="reference internal" href="#module-lib2to3" title="lib2to3: the 2to3 library"><code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3</span></code></a> is, however, a flexible and generic library, so it is
possible to write your own fixers for 2to3. <a class="reference internal" href="#module-lib2to3" title="lib2to3: the 2to3 library"><code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3</span></code></a> could also be
adapted to custom applications in which Python code needs to be edited
automatically.</p>
<div class="section" id="using-2to3">
<span id="to3-using"></span><h2>27.7.1. 使用 2to3<a class="headerlink" href="#using-2to3" title="本標題的永久連結">¶</a></h2>
<p>2to3 will usually be installed with the Python interpreter as a script. It is
also located in the <code class="file docutils literal notranslate"><span class="pre">Tools/scripts</span></code> directory of the Python root.</p>
<p>2to3’s basic arguments are a list of files or directories to transform. The
directories are recursively traversed for Python sources.</p>
<p>這邊有簡單的 Python 2的原始檔案 <code class="file docutils literal notranslate"><span class="pre">example.py</span></code>:</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">greet</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
<span class="nb">print</span> <span class="s2">"Hello, </span><span class="si">{0}</span><span class="s2">!"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="nb">print</span> <span class="s2">"What's your name?"</span>
<span class="n">name</span> <span class="o">=</span> <span class="n">raw_input</span><span class="p">()</span>
<span class="n">greet</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<p>It can be converted to Python 3.x code via 2to3 on the command line:</p>
<div class="highlight-shell-session notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> 2to3 example.py
</pre></div>
</div>
<p>A diff against the original source file is printed. 2to3 can also write the
needed modifications right back to the source file. (A backup of the original
file is made unless <code class="xref std std-option docutils literal notranslate"><span class="pre">-n</span></code> is also given.) Writing the changes back is
enabled with the <code class="xref std std-option docutils literal notranslate"><span class="pre">-w</span></code> flag:</p>
<div class="highlight-shell-session notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> 2to3 -w example.py
</pre></div>
</div>
<p>After transformation, <code class="file docutils literal notranslate"><span class="pre">example.py</span></code> looks like this:</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">greet</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Hello, </span><span class="si">{0}</span><span class="s2">!"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"What's your name?"</span><span class="p">)</span>
<span class="n">name</span> <span class="o">=</span> <span class="nb">input</span><span class="p">()</span>
<span class="n">greet</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<p>Comments and exact indentation are preserved throughout the translation process.</p>
<p>By default, 2to3 runs a set of <a class="reference internal" href="#to3-fixers"><span class="std std-ref">predefined fixers</span></a>. The
<code class="xref std std-option docutils literal notranslate"><span class="pre">-l</span></code> flag lists all available fixers. An explicit set of fixers to run
can be given with <code class="xref std std-option docutils literal notranslate"><span class="pre">-f</span></code>. Likewise the <code class="xref std std-option docutils literal notranslate"><span class="pre">-x</span></code> explicitly disables a
fixer. The following example runs only the <code class="docutils literal notranslate"><span class="pre">imports</span></code> and <code class="docutils literal notranslate"><span class="pre">has_key</span></code> fixers:</p>
<div class="highlight-shell-session notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> 2to3 -f imports -f has_key example.py
</pre></div>
</div>
<p>This command runs every fixer except the <code class="docutils literal notranslate"><span class="pre">apply</span></code> fixer:</p>
<div class="highlight-shell-session notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> 2to3 -x apply example.py
</pre></div>
</div>
<p>Some fixers are <em>explicit</em>, meaning they aren’t run by default and must be
listed on the command line to be run. Here, in addition to the default fixers,
the <code class="docutils literal notranslate"><span class="pre">idioms</span></code> fixer is run:</p>
<div class="highlight-shell-session notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> 2to3 -f all -f idioms example.py
</pre></div>
</div>
<p>Notice how passing <code class="docutils literal notranslate"><span class="pre">all</span></code> enables all default fixers.</p>
<p>Sometimes 2to3 will find a place in your source code that needs to be changed,
but 2to3 cannot fix automatically. In this case, 2to3 will print a warning
beneath the diff for a file. You should address the warning in order to have
compliant 3.x code.</p>
<p>2to3 can also refactor doctests. To enable this mode, use the <code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span></code>
flag. Note that <em>only</em> doctests will be refactored. This also doesn’t require
the module to be valid Python. For example, doctest like examples in a reST
document could also be refactored with this option.</p>
<p>The <code class="xref std std-option docutils literal notranslate"><span class="pre">-v</span></code> option enables output of more information on the translation
process.</p>
<p>Since some print statements can be parsed as function calls or statements, 2to3
cannot always read files containing the print function. When 2to3 detects the
presence of the <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">print_function</span></code> compiler directive, it
modifies its internal grammar to interpret <a class="reference internal" href="functions.html#print" title="print"><code class="xref py py-func docutils literal notranslate"><span class="pre">print()</span></code></a> as a function. This
change can also be enabled manually with the <code class="xref std std-option docutils literal notranslate"><span class="pre">-p</span></code> flag. Use
<code class="xref std std-option docutils literal notranslate"><span class="pre">-p</span></code> to run fixers on code that already has had its print statements
converted.</p>
<p>The <code class="xref std std-option docutils literal notranslate"><span class="pre">-o</span></code> or <code class="xref std std-option docutils literal notranslate"><span class="pre">--output-dir</span></code> option allows specification of an
alternate directory for processed output files to be written to. The
<code class="xref std std-option docutils literal notranslate"><span class="pre">-n</span></code> flag is required when using this as backup files do not make sense
when not overwriting the input files.</p>
<div class="versionadded">
<p><span class="versionmodified">3.2.3 版新加入: </span>The <code class="xref std std-option docutils literal notranslate"><span class="pre">-o</span></code> option was added.</p>
</div>
<p>The <code class="xref std std-option docutils literal notranslate"><span class="pre">-W</span></code> or <code class="xref std std-option docutils literal notranslate"><span class="pre">--write-unchanged-files</span></code> flag tells 2to3 to always
write output files even if no changes were required to the file. This is most
useful with <code class="xref std std-option docutils literal notranslate"><span class="pre">-o</span></code> so that an entire Python source tree is copied with
translation from one directory to another.
This option implies the <code class="xref std std-option docutils literal notranslate"><span class="pre">-w</span></code> flag as it would not make sense otherwise.</p>
<div class="versionadded">
<p><span class="versionmodified">3.2.3 版新加入: </span>The <code class="xref std std-option docutils literal notranslate"><span class="pre">-W</span></code> flag was added.</p>
</div>
<p>The <code class="xref std std-option docutils literal notranslate"><span class="pre">--add-suffix</span></code> option specifies a string to append to all output
filenames. The <code class="xref std std-option docutils literal notranslate"><span class="pre">-n</span></code> flag is required when specifying this as backups
are not necessary when writing to different filenames. Example:</p>
<div class="highlight-shell-session notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> 2to3 -n -W --add-suffix<span class="o">=</span><span class="m">3</span> example.py
</pre></div>
</div>
<p>Will cause a converted file named <code class="docutils literal notranslate"><span class="pre">example.py3</span></code> to be written.</p>
<div class="versionadded">
<p><span class="versionmodified">3.2.3 版新加入: </span>The <code class="xref std std-option docutils literal notranslate"><span class="pre">--add-suffix</span></code> option was added.</p>
</div>
<p>To translate an entire project from one directory tree to another use:</p>
<div class="highlight-shell-session notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> 2to3 --output-dir<span class="o">=</span>python3-version/mycode -W -n python2-version/mycode
</pre></div>
</div>
</div>
<div class="section" id="fixers">
<span id="to3-fixers"></span><h2>27.7.2. Fixers<a class="headerlink" href="#fixers" title="本標題的永久連結">¶</a></h2>
<p>Each step of transforming code is encapsulated in a fixer. The command <code class="docutils literal notranslate"><span class="pre">2to3</span>
<span class="pre">-l</span></code> lists them. As <a class="reference internal" href="#to3-using"><span class="std std-ref">documented above</span></a>, each can be turned on
and off individually. They are described here in more detail.</p>
<dl class="2to3fixer">
<dt id="2to3fixer-apply">
<code class="descname">apply</code><a class="headerlink" href="#2to3fixer-apply" title="本定義的永久連結">¶</a></dt>
<dd><p>Removes usage of <code class="xref py py-func docutils literal notranslate"><span class="pre">apply()</span></code>. For example <code class="docutils literal notranslate"><span class="pre">apply(function,</span> <span class="pre">*args,</span>
<span class="pre">**kwargs)</span></code> is converted to <code class="docutils literal notranslate"><span class="pre">function(*args,</span> <span class="pre">**kwargs)</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-asserts">
<code class="descname">asserts</code><a class="headerlink" href="#2to3fixer-asserts" title="本定義的永久連結">¶</a></dt>
<dd><p>Replaces deprecated <a class="reference internal" href="unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> method names with the correct ones.</p>
<table border="1" class="docutils">
<colgroup>
<col width="43%" />
<col width="57%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">從</th>
<th class="head">到</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">failUnlessEqual(a,</span> <span class="pre">b)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertEqual" title="unittest.TestCase.assertEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertEqual(a,</span> <span class="pre">b)</span></code></a></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">assertEquals(a,</span> <span class="pre">b)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertEqual" title="unittest.TestCase.assertEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertEqual(a,</span> <span class="pre">b)</span></code></a></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">failIfEqual(a,</span> <span class="pre">b)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertNotEqual" title="unittest.TestCase.assertNotEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertNotEqual(a,</span> <span class="pre">b)</span></code></a></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">assertNotEquals(a,</span> <span class="pre">b)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertNotEqual" title="unittest.TestCase.assertNotEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertNotEqual(a,</span> <span class="pre">b)</span></code></a></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">failUnless(a)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertTrue" title="unittest.TestCase.assertTrue"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertTrue(a)</span></code></a></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">assert_(a)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertTrue" title="unittest.TestCase.assertTrue"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertTrue(a)</span></code></a></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">failIf(a)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertFalse" title="unittest.TestCase.assertFalse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertFalse(a)</span></code></a></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">failUnlessRaises(exc,</span> <span class="pre">cal)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertRaises" title="unittest.TestCase.assertRaises"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertRaises(exc,</span> <span class="pre">cal)</span></code></a></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">failUnlessAlmostEqual(a,</span> <span class="pre">b)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertAlmostEqual" title="unittest.TestCase.assertAlmostEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertAlmostEqual(a,</span> <span class="pre">b)</span></code></a></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">assertAlmostEquals(a,</span> <span class="pre">b)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertAlmostEqual" title="unittest.TestCase.assertAlmostEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertAlmostEqual(a,</span> <span class="pre">b)</span></code></a></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">failIfAlmostEqual(a,</span> <span class="pre">b)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertNotAlmostEqual" title="unittest.TestCase.assertNotAlmostEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertNotAlmostEqual(a,</span> <span class="pre">b)</span></code></a></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">assertNotAlmostEquals(a,</span> <span class="pre">b)</span></code></td>
<td><a class="reference internal" href="unittest.html#unittest.TestCase.assertNotAlmostEqual" title="unittest.TestCase.assertNotAlmostEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertNotAlmostEqual(a,</span> <span class="pre">b)</span></code></a></td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-basestring">
<code class="descname">basestring</code><a class="headerlink" href="#2to3fixer-basestring" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts <code class="xref py py-class docutils literal notranslate"><span class="pre">basestring</span></code> to <a class="reference internal" href="stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-buffer">
<code class="descname">buffer</code><a class="headerlink" href="#2to3fixer-buffer" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts <code class="xref py py-class docutils literal notranslate"><span class="pre">buffer</span></code> to <a class="reference internal" href="stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a>. This fixer is optional
because the <a class="reference internal" href="stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> API is similar but not exactly the same as
that of <code class="xref py py-class docutils literal notranslate"><span class="pre">buffer</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-dict">
<code class="descname">dict</code><a class="headerlink" href="#2to3fixer-dict" title="本定義的永久連結">¶</a></dt>
<dd><p>Fixes dictionary iteration methods. <code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.iteritems()</span></code> is converted to
<a class="reference internal" href="stdtypes.html#dict.items" title="dict.items"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.items()</span></code></a>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.iterkeys()</span></code> to <a class="reference internal" href="stdtypes.html#dict.keys" title="dict.keys"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.keys()</span></code></a>, and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.itervalues()</span></code> to <a class="reference internal" href="stdtypes.html#dict.values" title="dict.values"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.values()</span></code></a>. Similarly,
<code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.viewitems()</span></code>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.viewkeys()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.viewvalues()</span></code> are
converted respectively to <a class="reference internal" href="stdtypes.html#dict.items" title="dict.items"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.items()</span></code></a>, <a class="reference internal" href="stdtypes.html#dict.keys" title="dict.keys"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.keys()</span></code></a> and
<a class="reference internal" href="stdtypes.html#dict.values" title="dict.values"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.values()</span></code></a>. It also wraps existing usages of <a class="reference internal" href="stdtypes.html#dict.items" title="dict.items"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.items()</span></code></a>,
<a class="reference internal" href="stdtypes.html#dict.keys" title="dict.keys"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.keys()</span></code></a>, and <a class="reference internal" href="stdtypes.html#dict.values" title="dict.values"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.values()</span></code></a> in a call to <a class="reference internal" href="stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-except">
<code class="descname">except</code><a class="headerlink" href="#2to3fixer-except" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts <code class="docutils literal notranslate"><span class="pre">except</span> <span class="pre">X,</span> <span class="pre">T</span></code> to <code class="docutils literal notranslate"><span class="pre">except</span> <span class="pre">X</span> <span class="pre">as</span> <span class="pre">T</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-exec">
<code class="descname">exec</code><a class="headerlink" href="#2to3fixer-exec" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts the <code class="docutils literal notranslate"><span class="pre">exec</span></code> statement to the <a class="reference internal" href="functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a> function.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-execfile">
<code class="descname">execfile</code><a class="headerlink" href="#2to3fixer-execfile" title="本定義的永久連結">¶</a></dt>
<dd><p>Removes usage of <code class="xref py py-func docutils literal notranslate"><span class="pre">execfile()</span></code>. The argument to <code class="xref py py-func docutils literal notranslate"><span class="pre">execfile()</span></code> is
wrapped in calls to <a class="reference internal" href="functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a>, <a class="reference internal" href="functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a>, and <a class="reference internal" href="functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-exitfunc">
<code class="descname">exitfunc</code><a class="headerlink" href="#2to3fixer-exitfunc" title="本定義的永久連結">¶</a></dt>
<dd><p>Changes assignment of <code class="xref py py-attr docutils literal notranslate"><span class="pre">sys.exitfunc</span></code> to use of the <a class="reference internal" href="atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a>
module.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-filter">
<code class="descname">filter</code><a class="headerlink" href="#2to3fixer-filter" title="本定義的永久連結">¶</a></dt>
<dd><p>Wraps <a class="reference internal" href="functions.html#filter" title="filter"><code class="xref py py-func docutils literal notranslate"><span class="pre">filter()</span></code></a> usage in a <a class="reference internal" href="stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> call.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-funcattrs">
<code class="descname">funcattrs</code><a class="headerlink" href="#2to3fixer-funcattrs" title="本定義的永久連結">¶</a></dt>
<dd><p>Fixes function attributes that have been renamed. For example,
<code class="docutils literal notranslate"><span class="pre">my_function.func_closure</span></code> is converted to <code class="docutils literal notranslate"><span class="pre">my_function.__closure__</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-future">
<code class="descname">future</code><a class="headerlink" href="#2to3fixer-future" title="本定義的永久連結">¶</a></dt>
<dd><p>Removes <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">new_feature</span></code> statements.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-getcwdu">
<code class="descname">getcwdu</code><a class="headerlink" href="#2to3fixer-getcwdu" title="本定義的永久連結">¶</a></dt>
<dd><p>Renames <code class="xref py py-func docutils literal notranslate"><span class="pre">os.getcwdu()</span></code> to <a class="reference internal" href="os.html#os.getcwd" title="os.getcwd"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getcwd()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-has_key">
<code class="descname">has_key</code><a class="headerlink" href="#2to3fixer-has_key" title="本定義的永久連結">¶</a></dt>
<dd><p>Changes <code class="docutils literal notranslate"><span class="pre">dict.has_key(key)</span></code> to <code class="docutils literal notranslate"><span class="pre">key</span> <span class="pre">in</span> <span class="pre">dict</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-idioms">
<code class="descname">idioms</code><a class="headerlink" href="#2to3fixer-idioms" title="本定義的永久連結">¶</a></dt>
<dd><p>This optional fixer performs several transformations that make Python code
more idiomatic. Type comparisons like <code class="docutils literal notranslate"><span class="pre">type(x)</span> <span class="pre">is</span> <span class="pre">SomeClass</span></code> and
<code class="docutils literal notranslate"><span class="pre">type(x)</span> <span class="pre">==</span> <span class="pre">SomeClass</span></code> are converted to <code class="docutils literal notranslate"><span class="pre">isinstance(x,</span> <span class="pre">SomeClass)</span></code>.
<code class="docutils literal notranslate"><span class="pre">while</span> <span class="pre">1</span></code> becomes <code class="docutils literal notranslate"><span class="pre">while</span> <span class="pre">True</span></code>. This fixer also tries to make use of
<a class="reference internal" href="functions.html#sorted" title="sorted"><code class="xref py py-func docutils literal notranslate"><span class="pre">sorted()</span></code></a> in appropriate places. For example, this block</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">L</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">some_iterable</span><span class="p">)</span>
<span class="n">L</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
</pre></div>
</div>
<p>is changed to</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">L</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">some_iterable</span><span class="p">)</span>
</pre></div>
</div>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-import">
<code class="descname">import</code><a class="headerlink" href="#2to3fixer-import" title="本定義的永久連結">¶</a></dt>
<dd><p>Detects sibling imports and converts them to relative imports.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-imports">
<code class="descname">imports</code><a class="headerlink" href="#2to3fixer-imports" title="本定義的永久連結">¶</a></dt>
<dd><p>Handles module renames in the standard library.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-imports2">
<code class="descname">imports2</code><a class="headerlink" href="#2to3fixer-imports2" title="本定義的永久連結">¶</a></dt>
<dd><p>Handles other modules renames in the standard library. It is separate from
the <a class="reference internal" href="#2to3fixer-imports"><code class="xref std std-2to3fixer docutils literal notranslate"><span class="pre">imports</span></code></a> fixer only because of technical limitations.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-input">
<code class="descname">input</code><a class="headerlink" href="#2to3fixer-input" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts <code class="docutils literal notranslate"><span class="pre">input(prompt)</span></code> to <code class="docutils literal notranslate"><span class="pre">eval(input(prompt))</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-intern">
<code class="descname">intern</code><a class="headerlink" href="#2to3fixer-intern" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts <code class="xref py py-func docutils literal notranslate"><span class="pre">intern()</span></code> to <a class="reference internal" href="sys.html#sys.intern" title="sys.intern"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.intern()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-isinstance">
<code class="descname">isinstance</code><a class="headerlink" href="#2to3fixer-isinstance" title="本定義的永久連結">¶</a></dt>
<dd><p>Fixes duplicate types in the second argument of <a class="reference internal" href="functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a>. For
example, <code class="docutils literal notranslate"><span class="pre">isinstance(x,</span> <span class="pre">(int,</span> <span class="pre">int))</span></code> is converted to <code class="docutils literal notranslate"><span class="pre">isinstance(x,</span>
<span class="pre">int)</span></code> and <code class="docutils literal notranslate"><span class="pre">isinstance(x,</span> <span class="pre">(int,</span> <span class="pre">float,</span> <span class="pre">int))</span></code> is converted to
<code class="docutils literal notranslate"><span class="pre">isinstance(x,</span> <span class="pre">(int,</span> <span class="pre">float))</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-itertools_imports">
<code class="descname">itertools_imports</code><a class="headerlink" href="#2to3fixer-itertools_imports" title="本定義的永久連結">¶</a></dt>
<dd><p>Removes imports of <code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.ifilter()</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.izip()</span></code>, and
<code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.imap()</span></code>. Imports of <code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.ifilterfalse()</span></code> are also
changed to <a class="reference internal" href="itertools.html#itertools.filterfalse" title="itertools.filterfalse"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.filterfalse()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-itertools">
<code class="descname">itertools</code><a class="headerlink" href="#2to3fixer-itertools" title="本定義的永久連結">¶</a></dt>
<dd><p>Changes usage of <code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.ifilter()</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.izip()</span></code>, and
<code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.imap()</span></code> to their built-in equivalents.
<code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.ifilterfalse()</span></code> is changed to <a class="reference internal" href="itertools.html#itertools.filterfalse" title="itertools.filterfalse"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.filterfalse()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-long">
<code class="descname">long</code><a class="headerlink" href="#2to3fixer-long" title="本定義的永久連結">¶</a></dt>
<dd><p>Renames <code class="xref py py-class docutils literal notranslate"><span class="pre">long</span></code> to <a class="reference internal" href="functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-map">
<code class="descname">map</code><a class="headerlink" href="#2to3fixer-map" title="本定義的永久連結">¶</a></dt>
<dd><p>Wraps <a class="reference internal" href="functions.html#map" title="map"><code class="xref py py-func docutils literal notranslate"><span class="pre">map()</span></code></a> in a <a class="reference internal" href="stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> call. It also changes <code class="docutils literal notranslate"><span class="pre">map(None,</span> <span class="pre">x)</span></code>
to <code class="docutils literal notranslate"><span class="pre">list(x)</span></code>. Using <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">future_builtins</span> <span class="pre">import</span> <span class="pre">map</span></code> disables this
fixer.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-metaclass">
<code class="descname">metaclass</code><a class="headerlink" href="#2to3fixer-metaclass" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts the old metaclass syntax (<code class="docutils literal notranslate"><span class="pre">__metaclass__</span> <span class="pre">=</span> <span class="pre">Meta</span></code> in the class
body) to the new (<code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">X(metaclass=Meta)</span></code>).</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-methodattrs">
<code class="descname">methodattrs</code><a class="headerlink" href="#2to3fixer-methodattrs" title="本定義的永久連結">¶</a></dt>
<dd><p>Fixes old method attribute names. For example, <code class="docutils literal notranslate"><span class="pre">meth.im_func</span></code> is converted
to <code class="docutils literal notranslate"><span class="pre">meth.__func__</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-ne">
<code class="descname">ne</code><a class="headerlink" href="#2to3fixer-ne" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts the old not-equal syntax, <code class="docutils literal notranslate"><span class="pre"><></span></code>, to <code class="docutils literal notranslate"><span class="pre">!=</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-next">
<code class="descname">next</code><a class="headerlink" href="#2to3fixer-next" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts the use of iterator’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">next()</span></code> methods to the
<a class="reference internal" href="functions.html#next" title="next"><code class="xref py py-func docutils literal notranslate"><span class="pre">next()</span></code></a> function. It also renames <a class="reference internal" href="functions.html#next" title="next"><code class="xref py py-meth docutils literal notranslate"><span class="pre">next()</span></code></a> methods to
<a class="reference internal" href="stdtypes.html#iterator.__next__" title="iterator.__next__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__next__()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-nonzero">
<code class="descname">nonzero</code><a class="headerlink" href="#2to3fixer-nonzero" title="本定義的永久連結">¶</a></dt>
<dd><p>Renames <code class="xref py py-meth docutils literal notranslate"><span class="pre">__nonzero__()</span></code> to <a class="reference internal" href="../reference/datamodel.html#object.__bool__" title="object.__bool__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__bool__()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-numliterals">
<code class="descname">numliterals</code><a class="headerlink" href="#2to3fixer-numliterals" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts octal literals into the new syntax.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-operator">
<code class="descname">operator</code><a class="headerlink" href="#2to3fixer-operator" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts calls to various functions in the <a class="reference internal" href="operator.html#module-operator" title="operator: Functions corresponding to the standard operators."><code class="xref py py-mod docutils literal notranslate"><span class="pre">operator</span></code></a> module to other,
but equivalent, function calls. When needed, the appropriate <code class="docutils literal notranslate"><span class="pre">import</span></code>
statements are added, e.g. <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">collections.abc</span></code>. The following mapping
are made:</p>
<table border="1" class="docutils">
<colgroup>
<col width="43%" />
<col width="57%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">從</th>
<th class="head">到</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">operator.isCallable(obj)</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">callable(obj)</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">operator.sequenceIncludes(obj)</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">operator.contains(obj)</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">operator.isSequenceType(obj)</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">isinstance(obj,</span> <span class="pre">collections.abc.Sequence)</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">operator.isMappingType(obj)</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">isinstance(obj,</span> <span class="pre">collections.abc.Mapping)</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">operator.isNumberType(obj)</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">isinstance(obj,</span> <span class="pre">numbers.Number)</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">operator.repeat(obj,</span> <span class="pre">n)</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">operator.mul(obj,</span> <span class="pre">n)</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">operator.irepeat(obj,</span> <span class="pre">n)</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">operator.imul(obj,</span> <span class="pre">n)</span></code></td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-paren">
<code class="descname">paren</code><a class="headerlink" href="#2to3fixer-paren" title="本定義的永久連結">¶</a></dt>
<dd><p>Add extra parenthesis where they are required in list comprehensions. For
example, <code class="docutils literal notranslate"><span class="pre">[x</span> <span class="pre">for</span> <span class="pre">x</span> <span class="pre">in</span> <span class="pre">1,</span> <span class="pre">2]</span></code> becomes <code class="docutils literal notranslate"><span class="pre">[x</span> <span class="pre">for</span> <span class="pre">x</span> <span class="pre">in</span> <span class="pre">(1,</span> <span class="pre">2)]</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-print">
<code class="descname">print</code><a class="headerlink" href="#2to3fixer-print" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts the <code class="docutils literal notranslate"><span class="pre">print</span></code> statement to the <a class="reference internal" href="functions.html#print" title="print"><code class="xref py py-func docutils literal notranslate"><span class="pre">print()</span></code></a> function.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-raise">
<code class="descname">raise</code><a class="headerlink" href="#2to3fixer-raise" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts <code class="docutils literal notranslate"><span class="pre">raise</span> <span class="pre">E,</span> <span class="pre">V</span></code> to <code class="docutils literal notranslate"><span class="pre">raise</span> <span class="pre">E(V)</span></code>, and <code class="docutils literal notranslate"><span class="pre">raise</span> <span class="pre">E,</span> <span class="pre">V,</span> <span class="pre">T</span></code> to <code class="docutils literal notranslate"><span class="pre">raise</span>
<span class="pre">E(V).with_traceback(T)</span></code>. If <code class="docutils literal notranslate"><span class="pre">E</span></code> is a tuple, the translation will be
incorrect because substituting tuples for exceptions has been removed in 3.0.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-raw_input">
<code class="descname">raw_input</code><a class="headerlink" href="#2to3fixer-raw_input" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts <code class="xref py py-func docutils literal notranslate"><span class="pre">raw_input()</span></code> to <a class="reference internal" href="functions.html#input" title="input"><code class="xref py py-func docutils literal notranslate"><span class="pre">input()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-reduce">
<code class="descname">reduce</code><a class="headerlink" href="#2to3fixer-reduce" title="本定義的永久連結">¶</a></dt>
<dd><p>Handles the move of <code class="xref py py-func docutils literal notranslate"><span class="pre">reduce()</span></code> to <a class="reference internal" href="functools.html#functools.reduce" title="functools.reduce"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.reduce()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-reload">
<code class="descname">reload</code><a class="headerlink" href="#2to3fixer-reload" title="本定義的永久連結">¶</a></dt>
<dd><p>Converts <code class="xref py py-func docutils literal notranslate"><span class="pre">reload()</span></code> to <a class="reference internal" href="importlib.html#importlib.reload" title="importlib.reload"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.reload()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-renames">
<code class="descname">renames</code><a class="headerlink" href="#2to3fixer-renames" title="本定義的永久連結">¶</a></dt>
<dd><p>Changes <code class="xref py py-data docutils literal notranslate"><span class="pre">sys.maxint</span></code> to <a class="reference internal" href="sys.html#sys.maxsize" title="sys.maxsize"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.maxsize</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-repr">
<code class="descname">repr</code><a class="headerlink" href="#2to3fixer-repr" title="本定義的永久連結">¶</a></dt>
<dd><p>Replaces backtick repr with the <a class="reference internal" href="functions.html#repr" title="repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">repr()</span></code></a> function.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-set_literal">
<code class="descname">set_literal</code><a class="headerlink" href="#2to3fixer-set_literal" title="本定義的永久連結">¶</a></dt>
<dd><p>Replaces use of the <a class="reference internal" href="stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a> constructor with set literals. This fixer
is optional.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-standarderror">
<code class="descname">standarderror</code><a class="headerlink" href="#2to3fixer-standarderror" title="本定義的永久連結">¶</a></dt>
<dd><p>Renames <code class="xref py py-exc docutils literal notranslate"><span class="pre">StandardError</span></code> to <a class="reference internal" href="exceptions.html#Exception" title="Exception"><code class="xref py py-exc docutils literal notranslate"><span class="pre">Exception</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-sys_exc">
<code class="descname">sys_exc</code><a class="headerlink" href="#2to3fixer-sys_exc" title="本定義的永久連結">¶</a></dt>
<dd><p>Changes the deprecated <code class="xref py py-data docutils literal notranslate"><span class="pre">sys.exc_value</span></code>, <code class="xref py py-data docutils literal notranslate"><span class="pre">sys.exc_type</span></code>,
<code class="xref py py-data docutils literal notranslate"><span class="pre">sys.exc_traceback</span></code> to use <a class="reference internal" href="sys.html#sys.exc_info" title="sys.exc_info"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.exc_info()</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-throw">
<code class="descname">throw</code><a class="headerlink" href="#2to3fixer-throw" title="本定義的永久連結">¶</a></dt>
<dd><p>Fixes the API change in generator’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">throw()</span></code> method.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-tuple_params">
<code class="descname">tuple_params</code><a class="headerlink" href="#2to3fixer-tuple_params" title="本定義的永久連結">¶</a></dt>
<dd><p>Removes implicit tuple parameter unpacking. This fixer inserts temporary
variables.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-types">
<code class="descname">types</code><a class="headerlink" href="#2to3fixer-types" title="本定義的永久連結">¶</a></dt>
<dd><p>Fixes code broken from the removal of some members in the <a class="reference internal" href="types.html#module-types" title="types: Names for built-in types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">types</span></code></a>
module.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-unicode">
<code class="descname">unicode</code><a class="headerlink" href="#2to3fixer-unicode" title="本定義的永久連結">¶</a></dt>
<dd><p>Renames <code class="xref py py-class docutils literal notranslate"><span class="pre">unicode</span></code> to <a class="reference internal" href="stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-urllib">
<code class="descname">urllib</code><a class="headerlink" href="#2to3fixer-urllib" title="本定義的永久連結">¶</a></dt>
<dd><p>Handles the rename of <a class="reference internal" href="urllib.html#module-urllib" title="urllib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib</span></code></a> and <code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib2</span></code> to the <a class="reference internal" href="urllib.html#module-urllib" title="urllib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib</span></code></a>
package.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-ws_comma">
<code class="descname">ws_comma</code><a class="headerlink" href="#2to3fixer-ws_comma" title="本定義的永久連結">¶</a></dt>
<dd><p>Removes excess whitespace from comma separated items. This fixer is
optional.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-xrange">
<code class="descname">xrange</code><a class="headerlink" href="#2to3fixer-xrange" title="本定義的永久連結">¶</a></dt>
<dd><p>Renames <code class="xref py py-func docutils literal notranslate"><span class="pre">xrange()</span></code> to <a class="reference internal" href="stdtypes.html#range" title="range"><code class="xref py py-func docutils literal notranslate"><span class="pre">range()</span></code></a> and wraps existing <a class="reference internal" href="stdtypes.html#range" title="range"><code class="xref py py-func docutils literal notranslate"><span class="pre">range()</span></code></a>
calls with <a class="reference internal" href="stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-xreadlines">
<code class="descname">xreadlines</code><a class="headerlink" href="#2to3fixer-xreadlines" title="本定義的永久連結">¶</a></dt>
<dd><p>Changes <code class="docutils literal notranslate"><span class="pre">for</span> <span class="pre">x</span> <span class="pre">in</span> <span class="pre">file.xreadlines()</span></code> to <code class="docutils literal notranslate"><span class="pre">for</span> <span class="pre">x</span> <span class="pre">in</span> <span class="pre">file</span></code>.</p>
</dd></dl>
<dl class="2to3fixer">
<dt id="2to3fixer-zip">
<code class="descname">zip</code><a class="headerlink" href="#2to3fixer-zip" title="本定義的永久連結">¶</a></dt>
<dd><p>Wraps <a class="reference internal" href="functions.html#zip" title="zip"><code class="xref py py-func docutils literal notranslate"><span class="pre">zip()</span></code></a> usage in a <a class="reference internal" href="stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> call. This is disabled when
<code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">future_builtins</span> <span class="pre">import</span> <span class="pre">zip</span></code> appears.</p>
</dd></dl>
</div>
<div class="section" id="module-lib2to3">
<span id="lib2to3-2to3-s-library"></span><h2>27.7.3. <a class="reference internal" href="#module-lib2to3" title="lib2to3: the 2to3 library"><code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3</span></code></a> - 2to3’s library<a class="headerlink" href="#module-lib2to3" title="本標題的永久連結">¶</a></h2>
<p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.7/Lib/lib2to3/">Lib/lib2to3/</a></p>
<hr class="docutils" />
<div class="admonition note">
<p class="first admonition-title">備註</p>
<p class="last">The <a class="reference internal" href="#module-lib2to3" title="lib2to3: the 2to3 library"><code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3</span></code></a> API should be considered unstable and may change
drastically in the future.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="../contents.html">目錄</a></h3>
<ul>
<li><a class="reference internal" href="#">27.7. 2to3 - 自動將 Python 2的程式碼轉成 Python 3</a><ul>
<li><a class="reference internal" href="#using-2to3">27.7.1. 使用 2to3</a></li>
<li><a class="reference internal" href="#fixers">27.7.2. Fixers</a></li>
<li><a class="reference internal" href="#module-lib2to3">27.7.3. <code class="docutils literal notranslate"><span class="pre">lib2to3</span></code> - 2to3’s library</a></li>
</ul>
</li>
</ul>
<h4>上個主題</h4>
<p class="topless"><a href="unittest.mock-examples.html"
title="上一章">27.6. <code class="docutils literal notranslate"><span class="pre">unittest.mock</span></code> — getting started</a></p>
<h4>下個主題</h4>
<p class="topless"><a href="test.html"
title="下一章">27.8. <code class="docutils literal notranslate"><span class="pre">test</span></code> — Regression tests package for Python</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">Report a Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.7/Doc/library/2to3.rst"
rel="nofollow">Show Source
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>瀏覽</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模組索引"
>模組</a> |</li>
<li class="right" >
<a href="test.html" title="27.8. test — Regression tests package for Python"
>下一頁</a> |</li>
<li class="right" >
<a href="unittest.mock-examples.html" title="27.6. unittest.mock — getting started"
>上一頁</a> |</li>
<li><img src="../_static/py.png" alt=""
style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> »</li>
<li>
<span class="language_switcher_placeholder">zh_TW</span>
<span class="version_switcher_placeholder">3.7.0</span>
<a href="../index.html">Documentation </a> »
</li>
<li class="nav-item nav-item-1"><a href="index.html" >Python 標準函式庫 (Standard Library)</a> »</li>
<li class="nav-item nav-item-2"><a href="development.html" >27. 開發工具</a> »</li>
<li class="right">
<div class="inline-search" style="display: none" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('.inline-search').show(0);</script>
|
</li>
</ul>
</div>
<div class="footer">
© <a href="../copyright.html">Copyright</a> 2001-2018, Python Software Foundation.
<br />
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br />
Last updated on 8月 22, 2018.
<a href="../bugs.html">Found a bug</a>?
<br />
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.7.7.
</div>
</body>
</html>