-
Notifications
You must be signed in to change notification settings - Fork 1
/
glossary.html
722 lines (699 loc) · 122 KB
/
glossary.html
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
<!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="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>用語集 — Python 3.5.3 ドキュメント</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">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '3.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</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.5.3 ドキュメント 内を検索"
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="top" title="Python 3.5.3 ドキュメント" href="contents.html" />
<link rel="next" title="このドキュメントについて" href="about.html" />
<link rel="prev" title="“なぜ Python が私のコンピュータにインストールされているのですか?” FAQ" href="faq/installed.html" />
<link rel="shortcut icon" type="image/png" href="_static/py.png" />
<link rel="canonical" href="https://docs.python.jp/3/glossary.html" /><script type="text/javascript">
$(document).ready(function() {
var base = 'https://docs.python.org/3.5/glossary.html';
$('a.headerlink').each(function() {
var html = '<a href="' + base + $(this).attr('href') +
'" title="原文へのリンク"><small>(原文)</small></a>';
$(this).after(html);
})
});
</script>
<script type="text/javascript" src="_static/copybutton.js"></script>
<script type="text/javascript" src="_static/version_switch.js"></script>
</head>
<body role="document">
<div class="related" role="navigation" aria-label="related navigation">
<h3>ナビゲーション</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="総索引"
accesskey="I">索引</a></li>
<li class="right" >
<a href="py-modindex.html" title="Pythonモジュール索引"
>モジュール</a> |</li>
<li class="right" >
<a href="about.html" title="このドキュメントについて"
accesskey="N">次へ</a> |</li>
<li class="right" >
<a href="faq/installed.html" title="“なぜ Python が私のコンピュータにインストールされているのですか?” FAQ"
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="version_switcher_placeholder">3.5.3</span>
<a href="index.html">ドキュメント</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="glossary">
<span id="id1"></span><h1>用語集<a class="headerlink" href="#glossary" title="このヘッドラインへのパーマリンク">¶</a></h1>
<dl class="glossary docutils">
<dt id="term"><code class="docutils literal"><span class="pre">>>></span></code></dt>
<dd><p class="first last">インタラクティブシェルにおけるデフォルトの Python プロンプトです。インタプリタでインタラクティブに実行されるコード例でよく出てきます。</p>
</dd>
<dt id="term-1"><code class="docutils literal"><span class="pre">...</span></code></dt>
<dd><p class="first last">インタラクティブシェルにおいて、インデントされたコードブロックや、対応する括弧 (丸括弧()、角括弧[]、波括弧{}) の内側で、コードを入力する際に表示されるデフォルトの Python プロンプトです。</p>
</dd>
<dt id="term-2to3">2to3</dt>
<dd><p class="first">Python 2.x のコードを Python 3.x のコードに変換するツールです。ソースコードを解析してその解析木を巡回 (traverse) することで検知できる、非互換性の大部分を処理します。</p>
<p class="last">2to3 は標準ライブラリの <a class="reference internal" href="library/2to3.html#module-lib2to3" title="lib2to3: the 2to3 library"><code class="xref py py-mod docutils literal"><span class="pre">lib2to3</span></code></a> として利用できます。単体のツールとしての使えるスクリプトが <code class="file docutils literal"><span class="pre">Tools/scripts/2to3</span></code> として提供されています。 <a class="reference internal" href="library/2to3.html#to3-reference"><span class="std std-ref">2to3 - Python 2 から 3 への自動コード変換</span></a> を参照してください。</p>
</dd>
<dt id="term-abstract-base-class">abstract base class</dt>
<dd><p class="first last">(抽象基底クラス) 抽象基底クラスは <a class="reference internal" href="#term-duck-typing"><span class="xref std std-term">duck-typing</span></a> を補完するもので、 <a class="reference internal" href="library/functions.html#hasattr" title="hasattr"><code class="xref py py-func docutils literal"><span class="pre">hasattr()</span></code></a> などの別のテクニックでは不恰好であったり微妙に誤る (例えば <a class="reference internal" href="reference/datamodel.html#special-lookup"><span class="std std-ref">magic methods</span></a> の場合) 場合にインタフェースを定義する方法を提供します。ABC は仮想 (virtual) サブクラスを導入します。これは親クラスから継承しませんが、それでも <a class="reference internal" href="library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal"><span class="pre">isinstance()</span></code></a> や <a class="reference internal" href="library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal"><span class="pre">issubclass()</span></code></a> に認識されます; <a class="reference internal" href="library/abc.html#module-abc" title="abc: Abstract base classes according to PEP 3119."><code class="xref py py-mod docutils literal"><span class="pre">abc</span></code></a> モジュールのドキュメントを参照してください。Python には、多くの組み込み ABC が同梱されています。その対象は、(<a class="reference internal" href="library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal"><span class="pre">collections.abc</span></code></a> モジュールで) データ構造、(<a class="reference internal" href="library/numbers.html#module-numbers" title="numbers: Numeric abstract base classes (Complex, Real, Integral, etc.)."><code class="xref py py-mod docutils literal"><span class="pre">numbers</span></code></a> モジュールで) 数、(<a class="reference internal" href="library/io.html#module-io" title="io: Core tools for working with streams."><code class="xref py py-mod docutils literal"><span class="pre">io</span></code></a> モジュールで) ストリーム、(<a class="reference internal" href="library/importlib.html#module-importlib.abc" title="importlib.abc: Abstract base classes related to import"><code class="xref py py-mod docutils literal"><span class="pre">importlib.abc</span></code></a> モジュールで) インポートファインダ及びローダーです。 <a class="reference internal" href="library/abc.html#module-abc" title="abc: Abstract base classes according to PEP 3119."><code class="xref py py-mod docutils literal"><span class="pre">abc</span></code></a> モジュールを利用して独自の ABC を作成できます。</p>
</dd>
<dt id="term-argument">argument</dt>
<dd><p class="first">(実引数) 関数を呼び出す際に、 <a class="reference internal" href="#term-function"><span class="xref std std-term">関数</span></a> (または <a class="reference internal" href="#term-method"><span class="xref std std-term">メソッド</span></a>) に渡す値です。実引数には2種類あります:</p>
<ul>
<li><p class="first"><em class="dfn">キーワード引数</em>: 関数呼び出しの際に引数の前に識別子がついたもの (例: <code class="docutils literal"><span class="pre">name=</span></code>) や、 <code class="docutils literal"><span class="pre">**</span></code> に続けた辞書の中の値として渡された引数。例えば、次の <a class="reference internal" href="library/functions.html#complex" title="complex"><code class="xref py py-func docutils literal"><span class="pre">complex()</span></code></a> の呼び出しでは、 <code class="docutils literal"><span class="pre">3</span></code> と <code class="docutils literal"><span class="pre">5</span></code> がキーワード引数です:</p>
<div class="highlight-python3"><div class="highlight"><pre><span></span><span class="nb">complex</span><span class="p">(</span><span class="n">real</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">imag</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="nb">complex</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="s1">'real'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'imag'</span><span class="p">:</span> <span class="mi">5</span><span class="p">})</span>
</pre></div>
</div>
</li>
<li><p class="first"><em class="dfn">位置引数</em>: キーワード引数以外の引数。位置引数は引数リストの先頭に書くことができ、また <code class="docutils literal"><span class="pre">*</span></code> に続けた <a class="reference internal" href="#term-iterable"><span class="xref std std-term">iterable</span></a> の要素として渡すことができます。例えば、次の例では <code class="docutils literal"><span class="pre">3</span></code> と <code class="docutils literal"><span class="pre">5</span></code> は両方共位置引数です:</p>
<div class="highlight-python3"><div class="highlight"><pre><span></span><span class="nb">complex</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
<span class="nb">complex</span><span class="p">(</span><span class="o">*</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
</pre></div>
</div>
</li>
</ul>
<p>実引数は関数の実体において名前付きのローカル変数に割り当てられます。割り当てを行う規則については <a class="reference internal" href="reference/expressions.html#calls"><span class="std std-ref">呼び出し (call)</span></a> を参照してください。シンタックスにおいて実引数を表すためにあらゆる式を使うことが出来ます。評価された値はローカル変数に割り当てられます。</p>
<p class="last"><a class="reference internal" href="#term-parameter"><span class="xref std std-term">仮引数</span></a> 、FAQ の <a class="reference internal" href="faq/programming.html#faq-argument-vs-parameter"><span class="std std-ref">実引数と仮引数の違いは何ですか?</span></a> 、<span class="target" id="index-47"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0362"><strong>PEP 362</strong></a> を参照してください。</p>
</dd>
<dt id="term-asynchronous-context-manager">asynchronous context manager</dt>
<dd><p class="first last">(非同期コンテクストマネージャ)
<a class="reference internal" href="reference/datamodel.html#object.__aenter__" title="object.__aenter__"><code class="xref py py-meth docutils literal"><span class="pre">__aenter__()</span></code></a> と <a class="reference internal" href="reference/datamodel.html#object.__aexit__" title="object.__aexit__"><code class="xref py py-meth docutils literal"><span class="pre">__aexit__()</span></code></a> メソッドを定義することで <a class="reference internal" href="reference/compound_stmts.html#async-with"><code class="xref std std-keyword docutils literal"><span class="pre">async</span> <span class="pre">with</span></code></a> 文内の環境を管理するオブジェクトです。
<span class="target" id="index-48"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0492"><strong>PEP 492</strong></a> で導入されました。</p>
</dd>
<dt id="term-asynchronous-iterable">asynchronous iterable</dt>
<dd><p class="first last">(非同期イテラブル)
<a class="reference internal" href="reference/compound_stmts.html#async-for"><code class="xref std std-keyword docutils literal"><span class="pre">async</span> <span class="pre">for</span></code></a> 文の中で使用できるオブジェクトです。
自身の <a class="reference internal" href="reference/datamodel.html#object.__aiter__" title="object.__aiter__"><code class="xref py py-meth docutils literal"><span class="pre">__aiter__()</span></code></a> メソッドから <a class="reference internal" href="#term-asynchronous-iterator"><span class="xref std std-term">asynchronous iterator</span></a> を返さなければなりません。
<span class="target" id="index-49"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0492"><strong>PEP 492</strong></a> で導入されました。</p>
</dd>
<dt id="term-asynchronous-iterator">asynchronous iterator</dt>
<dd><p class="first last">(非同期イテレータ)
<a class="reference internal" href="reference/datamodel.html#object.__aiter__" title="object.__aiter__"><code class="xref py py-meth docutils literal"><span class="pre">__aiter__()</span></code></a> と <a class="reference internal" href="reference/datamodel.html#object.__anext__" title="object.__anext__"><code class="xref py py-meth docutils literal"><span class="pre">__anext__()</span></code></a> メソッドを実装したオブジェクトです。
<code class="docutils literal"><span class="pre">__anext__</span></code> は <a class="reference internal" href="#term-awaitable"><span class="xref std std-term">awaitable</span></a> オブジェクトを返さなければなりません。
<a class="reference internal" href="reference/compound_stmts.html#async-for"><code class="xref std std-keyword docutils literal"><span class="pre">async</span> <span class="pre">for</span></code></a> は <a class="reference internal" href="library/exceptions.html#StopAsyncIteration" title="StopAsyncIteration"><code class="xref py py-exc docutils literal"><span class="pre">StopAsyncIteration</span></code></a> 例外を送出するまで
非同期イテレータの <a class="reference internal" href="reference/datamodel.html#object.__anext__" title="object.__anext__"><code class="xref py py-meth docutils literal"><span class="pre">__anext__()</span></code></a> メソッドが返す awaitable を解決します。
<span class="target" id="index-50"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0492"><strong>PEP 492</strong></a> で導入されました。</p>
</dd>
<dt id="term-attribute">属性</dt>
<dd><p class="first last">(属性) オブジェクトに関連付けられ、ドット表記式によって名前で参照される値です。例えば、オブジェクト <em>o</em> が属性 <em>a</em> を持っているとき、その属性は <em>o.a</em> で参照されます。</p>
</dd>
<dt id="term-awaitable">awaitable</dt>
<dd><p class="first last">(待機可能) <a class="reference internal" href="reference/expressions.html#await"><code class="xref std std-keyword docutils literal"><span class="pre">await</span></code></a> 式で使用することが出来るオブジェクトです。
<a class="reference internal" href="#term-coroutine"><span class="xref std std-term">coroutine</span></a> か、 <a class="reference internal" href="reference/datamodel.html#object.__await__" title="object.__await__"><code class="xref py py-meth docutils literal"><span class="pre">__await__()</span></code></a> メソッドがあるオブジェクトです。
<span class="target" id="index-51"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0492"><strong>PEP 492</strong></a> を参照してください。</p>
</dd>
<dt id="term-bdfl">BDFL</dt>
<dd><p class="first last">慈悲深き終身独裁者 (Benevolent Dictator For Life) の略です。Python の作者、<a class="reference external" href="https://www.python.org/~guido/">Guido van Rossum</a> のことです。</p>
</dd>
<dt id="term-binary-file">binary file</dt>
<dd><p class="first">A <a class="reference internal" href="#term-file-object"><span class="xref std std-term">file object</span></a> able to read and write
<a class="reference internal" href="#term-bytes-like-object"><span class="xref std std-term">bytes-like objects</span></a>.
Examples of binary files are files opened in binary mode (<code class="docutils literal"><span class="pre">'rb'</span></code>,
<code class="docutils literal"><span class="pre">'wb'</span></code> or <code class="docutils literal"><span class="pre">'rb+'</span></code>), <code class="xref py py-data docutils literal"><span class="pre">sys.stdin.buffer</span></code>,
<code class="xref py py-data docutils literal"><span class="pre">sys.stdout.buffer</span></code>, and instances of <a class="reference internal" href="library/io.html#io.BytesIO" title="io.BytesIO"><code class="xref py py-class docutils literal"><span class="pre">io.BytesIO</span></code></a> and
<a class="reference internal" href="library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal"><span class="pre">gzip.GzipFile</span></code></a>.</p>
<div class="last admonition seealso">
<p class="first admonition-title">参考</p>
<p class="last"><a class="reference internal" href="#term-text-file"><span class="xref std std-term">text file</span></a> は <a class="reference internal" href="library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> オブジェクトを読み書きする。</p>
</div>
</dd>
<dt id="term-bytes-like-object">bytes-like object</dt>
<dd><p class="first"><a class="reference internal" href="c-api/buffer.html#bufferobjects"><span class="std std-ref">バッファプロトコル (buffer Protocol)</span></a> をサポートしていて、 C 言語レベルで 連続した (<a class="reference internal" href="#term-contiguous"><span class="xref std std-term">contiguous</span></a>) バッファーを提供可能なオブジェクト。
<a class="reference internal" href="library/functions.html#bytes" title="bytes"><code class="xref py py-class docutils literal"><span class="pre">bytes</span></code></a>, <a class="reference internal" href="library/functions.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal"><span class="pre">bytearray</span></code></a>, <a class="reference internal" href="library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal"><span class="pre">array.array</span></code></a> や、多くの一般的な <a class="reference internal" href="library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal"><span class="pre">memoryview</span></code></a> オブジェクトがこれに当たります。
bytes-like オブジェクトは、データ圧縮、バイナリファイルへの保存、ソケットを経由した送信など、バイナリデータを要求するいろいろな操作に利用することができます。</p>
<p class="last">幾つかの操作ではバイナリデータを変更する必要があります。
その操作のドキュメントではよく “読み書き可能な bytes-like オブジェクト” に言及しています。
変更可能なバッファーオブジェクトには、 <a class="reference internal" href="library/functions.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal"><span class="pre">bytearray</span></code></a> と <a class="reference internal" href="library/functions.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal"><span class="pre">bytearray</span></code></a> の <a class="reference internal" href="library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal"><span class="pre">memoryview</span></code></a> などが含まれます。
また、他の幾つかの操作では不変なオブジェクト内のバイナリデータ (“読み込み専用の bytes-like オブジェクト”) を必要します。それには <a class="reference internal" href="library/functions.html#bytes" title="bytes"><code class="xref py py-class docutils literal"><span class="pre">bytes</span></code></a> と <a class="reference internal" href="library/functions.html#bytes" title="bytes"><code class="xref py py-class docutils literal"><span class="pre">bytes</span></code></a> の <a class="reference internal" href="library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal"><span class="pre">memoryview</span></code></a> オブジェクトが含まれます。</p>
</dd>
<dt id="term-bytecode">bytecode</dt>
<dd><p class="first">Python source code is compiled into bytecode, the internal representation
of a Python program in the CPython interpreter. The bytecode is also
cached in <code class="docutils literal"><span class="pre">.pyc</span></code> files so that executing the same file is
faster the second time (recompilation from source to bytecode can be
avoided). This “intermediate language” is said to run on a
<a class="reference internal" href="#term-virtual-machine"><span class="xref std std-term">virtual machine</span></a> that executes the machine code corresponding to
each bytecode. Do note that bytecodes are not expected to work between
different Python virtual machines, nor to be stable between Python
releases.</p>
<p class="last">バイトコードの命令一覧は <a class="reference internal" href="library/dis.html#bytecodes"><span class="std std-ref">dis モジュール</span></a> にあります。</p>
</dd>
<dt id="term-class">クラス</dt>
<dd><p class="first last">(クラス) ユーザー定義オブジェクトを作成するためのテンプレートです。クラス定義は普通、そのクラスのインスタンス上の操作をするメソッドの定義を含みます。</p>
</dd>
<dt id="term-coercion">coercion</dt>
<dd><p class="first last">(型強制) 同じ型の 2 引数を伴う演算の最中に行われる、ある型のインスタンスの別の型への暗黙の変換です。例えば、<code class="docutils literal"><span class="pre">int(3.15)</span></code> は浮動小数点数を整数 <code class="docutils literal"><span class="pre">3</span></code> に変換します。しかし <code class="docutils literal"><span class="pre">3+4.5</span></code> では、各引数は型が異なり(一つは整数、一つは浮動小数点数)、加算をする前に同じ型に変換できなければ <code class="docutils literal"><span class="pre">TypeError</span></code> 例外が投げられます。型強制がなかったら、すべての引数は、たとえ互換な型であっても、単に <code class="docutils literal"><span class="pre">3+4.5</span></code> ではなく <code class="docutils literal"><span class="pre">float(3)+4.5</span></code> というように、プログラマーが同じ型に正規化しなければいけません。</p>
</dd>
<dt id="term-complex-number">complex number</dt>
<dd><p class="first last">(複素数) よく知られている実数系を拡張したもので、すべての数は実部と虚部の和として表されます。虚数は虚数単位 (<code class="docutils literal"><span class="pre">-1</span></code> の平方根) に実数を掛けたもので、一般に数学では <code class="docutils literal"><span class="pre">i</span></code> と書かれ、工学では <code class="docutils literal"><span class="pre">j</span></code> と書かれます。Python は複素数に組み込みで対応し、後者の表記を取っています。虚部は末尾に <code class="docutils literal"><span class="pre">j</span></code> をつけて書きます。例えば <code class="docutils literal"><span class="pre">3+1j</span></code> です。 <a class="reference internal" href="library/math.html#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal"><span class="pre">math</span></code></a> モジュールの複素数版を利用するには、 <a class="reference internal" href="library/cmath.html#module-cmath" title="cmath: Mathematical functions for complex numbers."><code class="xref py py-mod docutils literal"><span class="pre">cmath</span></code></a> を使います。複素数の使用はかなり高度な数学の機能です。必要性を感じなければ、ほぼ間違いなく無視してしまってよいでしょう。</p>
</dd>
<dt id="term-context-manager">context manager</dt>
<dd><p class="first last">(コンテクストマネージャ)
<a class="reference internal" href="reference/datamodel.html#object.__enter__" title="object.__enter__"><code class="xref py py-meth docutils literal"><span class="pre">__enter__()</span></code></a> と <a class="reference internal" href="reference/datamodel.html#object.__exit__" title="object.__exit__"><code class="xref py py-meth docutils literal"><span class="pre">__exit__()</span></code></a> メソッドを定義することで <a class="reference internal" href="reference/compound_stmts.html#with"><code class="xref std std-keyword docutils literal"><span class="pre">with</span></code></a> 文内の環境を管理するオブジェクトです。<span class="target" id="index-52"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0343"><strong>PEP 343</strong></a> を参照してください。</p>
</dd>
<dt id="term-contiguous">contiguous</dt>
<dd><p class="first last" id="index-6">(隣接、連続) バッファが厳密に <em>C-連続</em> または <em>Fortran 連続</em> である場合に、そのバッファは連続しているとみなせます。
ゼロ次元バッファは C 連続であり Fortran 連続です。
一次元の配列では、その要素は必ずメモリ上で隣接するように配置され、添字がゼロから始まり増えていく順序で並びます。
多次元の C-連続な配列では、メモリアドレス順に要素を巡る際には最後の添え字が最初に変わるのに対し、 Fortran 連続な配列では最初の添え字が最初に動きます。</p>
</dd>
<dt id="term-coroutine">coroutine</dt>
<dd><p class="first last">(コルーチン)
コルーチンはサブルーチンのより一般的な形式です。
サブルーチンにはある時に入り別の時に出ます。
コルーチンには多くの異なる時に入り、出て、再開することが出来ます。
コルーチンは <a class="reference internal" href="reference/compound_stmts.html#async-def"><code class="xref std std-keyword docutils literal"><span class="pre">async</span> <span class="pre">def</span></code></a> 文で実装されます。
<span class="target" id="index-53"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0492"><strong>PEP 492</strong></a> を参照してください。</p>
</dd>
<dt id="term-coroutine-function">coroutine function</dt>
<dd><p class="first last">(コルーチン関数)
<a class="reference internal" href="#term-coroutine"><span class="xref std std-term">coroutine</span></a> オブジェクトを返す関数です。
コルーチン関数は <a class="reference internal" href="reference/compound_stmts.html#async-def"><code class="xref std std-keyword docutils literal"><span class="pre">async</span> <span class="pre">def</span></code></a> 文で実装され、<a class="reference internal" href="reference/expressions.html#await"><code class="xref std std-keyword docutils literal"><span class="pre">await</span></code></a>、<a class="reference internal" href="reference/compound_stmts.html#async-for"><code class="xref std std-keyword docutils literal"><span class="pre">async</span> <span class="pre">for</span></code></a>、 および <a class="reference internal" href="reference/compound_stmts.html#async-with"><code class="xref std std-keyword docutils literal"><span class="pre">async</span> <span class="pre">with</span></code></a> キーワードを持つことが出来ます。
これらは <span class="target" id="index-54"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0492"><strong>PEP 492</strong></a> で導入されました。</p>
</dd>
<dt id="term-cpython">CPython</dt>
<dd><p class="first last"><a class="reference external" href="https://www.python.org">python.org</a> で配布されている、Python プログラミング言語の標準的な実装です。”CPython” という単語は、この実装を Jython や IronPython といった他の実装と区別する必要が有る場合に利用されます。</p>
</dd>
<dt id="term-decorator">decorator</dt>
<dd><p class="first">(デコレータ) 別の関数を返す関数で、通常、 <code class="docutils literal"><span class="pre">@wrapper</span></code> 構文で関数変換として適用されます。デコレータの一般的な利用例は、 <a class="reference internal" href="library/functions.html#classmethod" title="classmethod"><code class="xref py py-func docutils literal"><span class="pre">classmethod()</span></code></a> と <a class="reference internal" href="library/functions.html#staticmethod" title="staticmethod"><code class="xref py py-func docutils literal"><span class="pre">staticmethod()</span></code></a> です。</p>
<p>デコレータの文法はシンタックスシュガーです。次の2つの関数定義は意味的に同じものです:</p>
<div class="highlight-python3"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="o">...</span><span class="p">):</span>
<span class="o">...</span>
<span class="n">f</span> <span class="o">=</span> <span class="nb">staticmethod</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
<span class="nd">@staticmethod</span>
<span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="o">...</span><span class="p">):</span>
<span class="o">...</span>
</pre></div>
</div>
<p class="last">同じ概念がクラスにも存在しますが、あまり使われません。デコレータについて詳しくは、 <a class="reference internal" href="reference/compound_stmts.html#function"><span class="std std-ref">関数定義</span></a> および <a class="reference internal" href="reference/compound_stmts.html#class"><span class="std std-ref">クラス定義</span></a> のドキュメントを参照してください。</p>
</dd>
<dt id="term-descriptor">descriptor</dt>
<dd><p class="first">(デスクリプタ) メソッド <a class="reference internal" href="reference/datamodel.html#object.__get__" title="object.__get__"><code class="xref py py-meth docutils literal"><span class="pre">__get__()</span></code></a>, <a class="reference internal" href="reference/datamodel.html#object.__set__" title="object.__set__"><code class="xref py py-meth docutils literal"><span class="pre">__set__()</span></code></a>, あるいは <a class="reference internal" href="reference/datamodel.html#object.__delete__" title="object.__delete__"><code class="xref py py-meth docutils literal"><span class="pre">__delete__()</span></code></a> を定義しているオブジェクトです。あるクラス属性がデスクリプタであるとき、属性探索によって、束縛されている特別な動作が呼び出されます。通常、get,set,deleteのために <em>a.b</em> と書くと、 <em>a</em> のクラス辞書内でオブジェクト <em>b</em> を検索しますが、 <em>b</em> がデスクリプタであればそれぞれのデスクリプタメソッドが呼び出されます。デスクリプタの理解は、 Python を深く理解する上で鍵となります。というのは、デスクリプタこそが、関数、メソッド、プロパティ、クラスメソッド、静的メソッド、そしてスーパクラスの参照といった多くの機能の基盤だからです。</p>
<p class="last">デスクリプタのメソッドに関して詳しくは、 <a class="reference internal" href="reference/datamodel.html#descriptors"><span class="std std-ref">デスクリプタ (descriptor) の実装</span></a> を参照してください。</p>
</dd>
<dt id="term-dictionary">dictionary</dt>
<dd><p class="first last">(辞書) 任意のキーを値に対応付ける連想配列です。 <a class="reference internal" href="reference/datamodel.html#object.__hash__" title="object.__hash__"><code class="xref py py-meth docutils literal"><span class="pre">__hash__()</span></code></a> メソッドと <a class="reference internal" href="reference/datamodel.html#object.__eq__" title="object.__eq__"><code class="xref py py-meth docutils literal"><span class="pre">__eq__()</span></code></a> メソッドを実装した任意のオブジェクトをキーにできます。 Perl ではハッシュ (hash) と呼ばれています。</p>
</dd>
<dt id="term-dictionary-view">dictionary view</dt>
<dd><p class="first last">(辞書ビュー)
<a class="reference internal" href="library/stdtypes.html#dict.keys" title="dict.keys"><code class="xref py py-meth docutils literal"><span class="pre">dict.keys()</span></code></a>、<a class="reference internal" href="library/stdtypes.html#dict.values" title="dict.values"><code class="xref py py-meth docutils literal"><span class="pre">dict.values()</span></code></a>、<a class="reference internal" href="library/stdtypes.html#dict.items" title="dict.items"><code class="xref py py-meth docutils literal"><span class="pre">dict.items()</span></code></a> が返すオブジェクトです。
辞書の項目の動的なビューを提供します。
すなわち、辞書が変更されるとビューはそれを反映します。
辞書ビューを強制的に完全なリストにするには <code class="docutils literal"><span class="pre">list(dictview)</span></code> を使用してください。
<a class="reference internal" href="library/stdtypes.html#dict-views"><span class="std std-ref">辞書ビューオブジェクト</span></a> を参照してください。</p>
</dd>
<dt id="term-docstring">docstring</dt>
<dd><p class="first last">クラス、関数、モジュールの最初の式である文字列リテラルです。そのスイートの実行時には無視されますが、コンパイラによって識別され、そのクラス、関数、モジュールの <code class="xref py py-attr docutils literal"><span class="pre">__doc__</span></code> 属性として保存されます。イントロスペクションできる(訳注: 属性として参照できる)ので、オブジェクトのドキュメントを書く標準的な場所です。</p>
</dd>
<dt id="term-duck-typing">duck-typing</dt>
<dd><p class="first last">あるオブジェクトが正しいインタフェースを持っているかを決定するのにオブジェクトの型を見ないプログラミングスタイルです。代わりに、単純にオブジェクトのメソッドや属性が呼ばれたり使われたりします。(「アヒルのように見えて、アヒルのように鳴けば、それはアヒルである。」)インタフェースを型より重視することで、上手くデザインされたコードは、ポリモーフィックな代替を許して柔軟性を向上させます。ダックタイピングは <a class="reference internal" href="library/functions.html#type" title="type"><code class="xref py py-func docutils literal"><span class="pre">type()</span></code></a> や <a class="reference internal" href="library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal"><span class="pre">isinstance()</span></code></a> による判定を避けます。 (ただし、ダックタイピングを <a class="reference internal" href="#term-abstract-base-class"><span class="xref std std-term">抽象基底クラス</span></a> で補完することもできます。) その代わり、典型的に <a class="reference internal" href="library/functions.html#hasattr" title="hasattr"><code class="xref py py-func docutils literal"><span class="pre">hasattr()</span></code></a> 判定や <a class="reference internal" href="#term-eafp"><span class="xref std std-term">EAFP</span></a> プログラミングを利用します。</p>
</dd>
<dt id="term-eafp">EAFP</dt>
<dd><p class="first last">「認可をとるより許しを請う方が容易 (easier to ask for forgiveness than permission、マーフィーの法則)」の略です。この Python で広く使われているコーディングスタイルでは、通常は有効なキーや属性が存在するものと仮定し、その仮定が誤っていた場合に例外を捕捉します。この簡潔で手早く書けるコーディングスタイルには、 <a class="reference internal" href="reference/compound_stmts.html#try"><code class="xref std std-keyword docutils literal"><span class="pre">try</span></code></a> 文および <a class="reference internal" href="reference/compound_stmts.html#except"><code class="xref std std-keyword docutils literal"><span class="pre">except</span></code></a> 文がたくさんあるのが特徴です。このテクニックは、C のような言語でよく使われている <a class="reference internal" href="#term-lbyl"><span class="xref std std-term">LBYL</span></a> スタイルと対照的なものです。</p>
</dd>
<dt id="term-expression">expression</dt>
<dd><p class="first last">(式) 何かの値と評価される、一まとまりの構文 (a piece of syntax) です。言い換えると、式とはリテラル、名前、属性アクセス、演算子や関数呼び出しなど、値を返す式の要素の積み重ねです。他の多くの言語と違い、Python では言語の全ての構成要素が式というわけではありません。 <a class="reference internal" href="reference/compound_stmts.html#if"><code class="xref std std-keyword docutils literal"><span class="pre">if</span></code></a> のように、式としては使えない文 (<a class="reference internal" href="#term-statement"><span class="xref std std-term">statement</span></a>) もあります。代入も式ではなく文です。</p>
</dd>
<dt id="term-extension-module">extension module</dt>
<dd><p class="first last">(拡張モジュール) C や C++ で書かれたモジュールで、Python の C API を利用して Python コアやユーザーコードとやりとりします。</p>
</dd>
<dt id="term-file-object">file object</dt>
<dd><p class="first">(ファイルオブジェクト) 下位のリソースへのファイル志向 API (<code class="xref py py-meth docutils literal"><span class="pre">read()</span></code> や <code class="xref py py-meth docutils literal"><span class="pre">write()</span></code> メソッドを持つもの) を公開しているオブジェクトです。ファイルオブジェクトは、作成された手段によって、実際のディスク上のファイルや、その他のタイプのストレージや通信デバイス (例えば、標準入出力、インメモリバッファ、ソケット、パイプ、等) へのアクセスを媒介できます。ファイルオブジェクトは <em class="dfn">file-like objects</em> や <em class="dfn">streams</em> とも呼ばれます。</p>
<p class="last">ファイルオブジェクトには実際には 3 種類あります: 生の <a class="reference internal" href="#term-binary-file"><span class="xref std std-term">バイナリーファイル</span></a>、バッファされた <a class="reference internal" href="#term-binary-file"><span class="xref std std-term">バイナリーファイル</span></a>、そして <a class="reference internal" href="#term-text-file"><span class="xref std std-term">テキストファイル</span></a> です。インターフェイスは <a class="reference internal" href="library/io.html#module-io" title="io: Core tools for working with streams."><code class="xref py py-mod docutils literal"><span class="pre">io</span></code></a> モジュールで定義されています。ファイルオブジェクトを作る標準的な方法は <a class="reference internal" href="library/functions.html#open" title="open"><code class="xref py py-func docutils literal"><span class="pre">open()</span></code></a> 関数を使うことです。</p>
</dd>
<dt id="term-file-like-object">file-like object</dt>
<dd><p class="first last"><a class="reference internal" href="#term-file-object"><span class="xref std std-term">file object</span></a> と同義です。</p>
</dd>
<dt id="term-finder">finder</dt>
<dd><p class="first">(ファインダ)
インポートされているモジュールの <a class="reference internal" href="#term-loader"><span class="xref std std-term">loader</span></a> の発見を試行するオブジェクトです。</p>
<p>Python 3.3 以降では 2 種類のファインダがあります。
<a class="reference internal" href="library/sys.html#sys.meta_path" title="sys.meta_path"><code class="xref py py-data docutils literal"><span class="pre">sys.meta_path</span></code></a> で使用される <a class="reference internal" href="#term-meta-path-finder"><span class="xref std std-term">meta path finder</span></a> と、
<a class="reference internal" href="library/sys.html#sys.path_hooks" title="sys.path_hooks"><code class="xref py py-data docutils literal"><span class="pre">sys.path_hooks</span></code></a> で使用される <a class="reference internal" href="#term-path-entry-finder"><span class="xref std std-term">path entry finder</span></a> です。</p>
<p class="last">詳細については <span class="target" id="index-55"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0302"><strong>PEP 302</strong></a>、<span class="target" id="index-56"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0420"><strong>PEP 420</strong></a> および <span class="target" id="index-57"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0451"><strong>PEP 451</strong></a> を参照してください。</p>
</dd>
<dt id="term-floor-division">floor division</dt>
<dd><p class="first last">一番近い小さい整数に丸める数学除算。floor division 演算子は <code class="docutils literal"><span class="pre">//</span></code> です。例えば、 <code class="docutils literal"><span class="pre">11</span> <span class="pre">//</span> <span class="pre">4</span></code> は <code class="docutils literal"><span class="pre">2</span></code> になり、 float の true division の結果 <code class="docutils literal"><span class="pre">2.75</span></code> と異なります。 <code class="docutils literal"><span class="pre">(-11)</span> <span class="pre">//</span> <span class="pre">4</span></code> は <code class="docutils literal"><span class="pre">-2.75</span></code> を <em>小さい方に</em> 丸めるので <code class="docutils literal"><span class="pre">-3</span></code> になることに注意してください。 <span class="target" id="index-58"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0238"><strong>PEP 238</strong></a> を参照してください。</p>
</dd>
<dt id="term-function">function</dt>
<dd><p class="first last">(関数) 呼び出し側に値を返す一連の文のことです。関数には0以上の <a class="reference internal" href="#term-argument"><span class="xref std std-term">実引数</span></a> を渡すことが出来ます。実体の実行時に引数を使用することが出来ます。 <a class="reference internal" href="#term-parameter"><span class="xref std std-term">仮引数</span></a>、<a class="reference internal" href="#term-method"><span class="xref std std-term">メソッド</span></a>、<a class="reference internal" href="reference/compound_stmts.html#function"><span class="std std-ref">関数定義</span></a> を参照してください。</p>
</dd>
<dt id="term-function-annotation">function annotation</dt>
<dd><p class="first">(関数アノテーション) 関数の引数や返り値に関連付けられる任意のメタデータです。シンタックスは <a class="reference internal" href="reference/compound_stmts.html#function"><span class="std std-ref">関数定義</span></a> で述べられています。アノテーションは関数オブジェクトの <code class="xref py py-attr docutils literal"><span class="pre">__annotations__</span></code> 属性からアクセスすることが出来ます。</p>
<p class="last">Python 自体は関数アノテーションに特定の意味を割り当てたりはしません。関数アノテーションはサードパーティ製のライブラリやツールによる解釈を意図しています。潜在的な用途については <span class="target" id="index-59"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-3107"><strong>PEP 3107</strong></a> を参照してください。</p>
</dd>
<dt id="term-future">__future__</dt>
<dd><p class="first">互換性のない新たな言語機能を現在のインタプリタで有効にするためにプログラマが利用できる擬似モジュールです。</p>
<p><a class="reference internal" href="library/__future__.html#module-__future__" title="__future__: Future statement definitions"><code class="xref py py-mod docutils literal"><span class="pre">__future__</span></code></a> モジュールを import してその変数を評価すれば、新たな機能が初めて追加されたのがいつで、いつ言語デフォルトの機能になるかわかります:</p>
<div class="last highlight-python3"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span> <span class="nn">__future__</span>
<span class="gp">>>> </span><span class="n">__future__</span><span class="o">.</span><span class="n">division</span>
<span class="go">_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)</span>
</pre></div>
</div>
</dd>
<dt id="term-garbage-collection">garbage collection</dt>
<dd><p class="first last">(ガベージコレクション) それ以上使われなくなったメモリを解放する処理です。Pythonは、参照カウントと、循環参照を見つけて破壊する循環ガベージコレクタと、を使ってガベージコレクションを行います。</p>
</dd>
<dt id="index-14"><span id="term-generator"></span>ジェネレータ</dt>
<dd><p class="first">(ジェネレータ)
<a class="reference internal" href="#term-generator-iterator"><span class="xref std std-term">generator iterator</span></a> を返す関数です。
通常の関数に似ていますが、 <a class="reference internal" href="reference/simple_stmts.html#yield"><code class="xref std std-keyword docutils literal"><span class="pre">yield</span></code></a> 式を持つ点で異なります。
<a class="reference internal" href="reference/simple_stmts.html#yield"><code class="xref std std-keyword docutils literal"><span class="pre">yield</span></code></a> 式は for ループで使用出来る一連の値や、<a class="reference internal" href="library/functions.html#next" title="next"><code class="xref py py-func docutils literal"><span class="pre">next()</span></code></a> 関数で一度に 1 つの値を取り出すのに使用されます。</p>
<p class="last">通常はジェネレータ関数を指しますが、文脈によっては <em>ジェネレータイテレータ</em> を指す場合があります。
意図された意味が明らかでない場合、 明瞭化のために完全な単語を使用します。</p>
</dd>
<dt id="term-generator-iterator">generator iterator</dt>
<dd><p class="first">(ジェネレータイテレータ)
<a class="reference internal" href="#term-generator"><span class="xref std std-term">generator</span></a> 関数に生成されるオブジェクトです。</p>
<p class="last"><a class="reference internal" href="reference/simple_stmts.html#yield"><code class="xref std std-keyword docutils literal"><span class="pre">yield</span></code></a> のたびに局所実行状態 (局所変数や未処理の try 文などを含む) を記憶して、処理は一時的に中断されます。
<em>ジェネレータイテレータ</em> が再開されると、中断した箇所を取得します (通常の関数が実行の度に新たな状態から開始するのと対照的です) 。</p>
</dd>
<dt id="index-15"><span id="term-generator-expression"></span>generator expression</dt>
<dd><p class="first">(ジェネレータ式) イテレータを返す式です。普通の式に、ループ変数を定義する <a class="reference internal" href="reference/compound_stmts.html#for"><code class="xref std std-keyword docutils literal"><span class="pre">for</span></code></a> 式、範囲、そして省略可能な <a class="reference internal" href="reference/compound_stmts.html#if"><code class="xref std std-keyword docutils literal"><span class="pre">if</span></code></a> 式がつづいているように見えます。こうして構成された式は、外側の関数に向けて値を生成します:</p>
<div class="last highlight-python3"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="nb">sum</span><span class="p">(</span><span class="n">i</span><span class="o">*</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span> <span class="c1"># sum of squares 0, 1, 4, ... 81</span>
<span class="go">285</span>
</pre></div>
</div>
</dd>
<dt id="term-generic-function">generic function</dt>
<dd><p class="first">(ジェネリック関数) 異なる型に対し同じ操作をする関数群から構成される関数です。呼び出し時にどの実装を用いるかはディスパッチアルゴリズムにより決定されます。</p>
<p class="last"><a class="reference internal" href="#term-single-dispatch"><span class="xref std std-term">single dispatch</span></a>、<a class="reference internal" href="library/functools.html#functools.singledispatch" title="functools.singledispatch"><code class="xref py py-func docutils literal"><span class="pre">functools.singledispatch()</span></code></a> デコレータ、<span class="target" id="index-60"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0443"><strong>PEP 443</strong></a> を参照してください。</p>
</dd>
<dt id="term-gil">GIL</dt>
<dd><p class="first last"><a class="reference internal" href="#term-global-interpreter-lock"><span class="xref std std-term">global interpreter lock</span></a> を参照してください。</p>
</dd>
<dt id="term-global-interpreter-lock">global interpreter lock</dt>
<dd><p class="first">(グローバルインタプリタロック) <a class="reference internal" href="#term-cpython"><span class="xref std std-term">CPython</span></a> インタプリタが利用している、一度に Python のバイトコード (<a class="reference internal" href="#term-bytecode"><span class="xref std std-term">bytecode</span></a>) を実行するスレッドは一つだけであることを保証する仕組みです。これにより (<a class="reference internal" href="library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> などの重要な組み込み型を含む) オブジェクトモデルが同時アクセスに対して暗黙的に安全になるので、 CPython の実装がシンプルになります。インタプリタ全体をロックすることで、マルチプロセッサマシンが生じる並列化のコストと引き換えに、インタプリタを簡単にマルチスレッド化できるようになります。</p>
<p>ただし、標準あるいは外部のいくつかの拡張モジュールは、圧縮やハッシュ計算などの計算の重い処理をするときに GIL を解除するように設計されています。また、I/O 処理をする場合 GIL は常に解除されます。</p>
<p class="last">過去に “自由なマルチスレッド化” したインタプリタ (供用されるデータを細かい粒度でロックする) が開発されましたが、一般的なシングルプロセッサの場合のパフォーマンスが悪かったので成功しませんでした。このパフォーマンスの問題を克服しようとすると、実装がより複雑になり保守コストが増加すると考えられています。</p>
</dd>
<dt id="term-hashable">hashable</dt>
<dd><p class="first">(ハッシュ可能) <em>ハッシュ可能</em> なオブジェクトとは、生存期間中変わらないハッシュ値を持ち (<a class="reference internal" href="reference/datamodel.html#object.__hash__" title="object.__hash__"><code class="xref py py-meth docutils literal"><span class="pre">__hash__()</span></code></a> メソッドが必要)、他のオブジェクトと比較ができる (<a class="reference internal" href="reference/datamodel.html#object.__eq__" title="object.__eq__"><code class="xref py py-meth docutils literal"><span class="pre">__eq__()</span></code></a> メソッドが必要) オブジェクトです。同値なハッシュ可能オブジェクトは必ず同じハッシュ値を持つ必要があります。</p>
<p>ハッシュ可能なオブジェクトは辞書のキーや集合のメンバーとして使えます。辞書や集合のデータ構造は内部でハッシュ値を使っているからです。</p>
<p class="last">All of Python’s immutable built-in objects are hashable; mutable
containers (such as lists or dictionaries) are not. Objects which are
instances of user-defined classes are hashable by default. They all
compare unequal (except with themselves), and their hash value is derived
from their <a class="reference internal" href="library/functions.html#id" title="id"><code class="xref py py-func docutils literal"><span class="pre">id()</span></code></a>.</p>
</dd>
<dt id="term-idle">IDLE</dt>
<dd><p class="first last">Python の統合開発環境 (Integrated DeveLopment Environment) です。IDLE は Python の標準的な配布に同梱されている基本的な機能のエディタとインタプリタ環境です。</p>
</dd>
<dt id="term-immutable">immutable</dt>
<dd><p class="first last">(イミュータブル) 固定の値を持ったオブジェクトです。イミュータブルなオブジェクトには、数値、文字列、およびタプルなどがあります。これらのオブジェクトは値を変えられません。別の値を記憶させる際には、新たなオブジェクトを作成しなければなりません。イミュータブルなオブジェクトは、固定のハッシュ値が必要となる状況で重要な役割を果たします。辞書のキーがその例です。</p>
</dd>
<dt id="term-import-path">import path</dt>
<dd><p class="first last"><a class="reference internal" href="#term-path-based-finder"><span class="xref std std-term">path based finder</span></a> が import するモジュールを検索する場所 (または <a class="reference internal" href="#term-path-entry"><span class="xref std std-term">path entry</span></a>) のリスト。 import 中、このリストは通常 <a class="reference internal" href="library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal"><span class="pre">sys.path</span></code></a> から来ますが、サブパッケージの場合は親パッケージの <code class="docutils literal"><span class="pre">__path__</span></code> 属性からも来ます。</p>
</dd>
<dt id="term-importing">importing</dt>
<dd><p class="first last">あるモジュールの Python コードが別のモジュールの Python コードで使えるようにする処理です。</p>
</dd>
<dt id="term-importer">importer</dt>
<dd><p class="first last">モジュールを探してロードするオブジェクト。 <a class="reference internal" href="#term-finder"><span class="xref std std-term">finder</span></a> と <a class="reference internal" href="#term-loader"><span class="xref std std-term">loader</span></a> のどちらでもあるオブジェクト。</p>
</dd>
<dt id="term-interactive">interactive</dt>
<dd><p class="first last">(対話的) Python には対話的インタプリタがあり、文や式をインタプリタのプロンプトに入力すると即座に実行されて結果を見ることができます。 <code class="docutils literal"><span class="pre">python</span></code> と何も引数を与えずに実行してください。(コンピュータのメインメニューから Pythonの対話的インタプリタを起動できるかもしれません。) 対話的インタプリタは、新しいアイデアを試してみたり、モジュールやパッケージの中を覗いてみる(<code class="docutils literal"><span class="pre">help(x)</span></code> を覚えておいてください) のに非常に便利なツールです。</p>
</dd>
<dt id="term-interpreted">interpreted</dt>
<dd><p class="first last">Python はインタプリタ形式の言語であり、コンパイラ言語の対極に位置します。 (バイトコードコンパイラがあるために、この区別は曖昧ですが。) ここでのインタプリタ言語とは、ソースコードのファイルを、まず実行可能形式にしてから実行させるといった操作なしに、直接実行できることを意味します。インタプリタ形式の言語は通常、コンパイラ形式の言語よりも開発/デバッグのサイクルは短いものの、プログラムの実行は一般に遅いです。対話的(<a class="reference internal" href="#term-interactive"><span class="xref std std-term">interactive</span></a>)も参照してください。</p>
</dd>
<dt id="term-interpreter-shutdown">interpreter shutdown</dt>
<dd><p class="first">Python インタープリターはシャットダウンを要請された時に、モジュールやすべてのクリティカルな内部構造をなどの、すべての確保したリソースを段階的に開放する、特別なフェーズに入ります。
このフェーズはガベージコレクター (<a class="reference internal" href="#term-garbage-collection"><span class="xref std std-term">garbage collector</span></a>) を複数回呼び出します。
これによりユーザー定義のデストラクターや weakref コールバックが呼び出されることがあります。
シャットダウンフェーズ中に実行されるコードは、それが依存するリソースがすでに機能しない(よくある例はライブラリーモジュールや warning 機構です) ために様々な例外に直面します。</p>
<p class="last">インタープリタがシャットダウンする主な理由は <code class="docutils literal"><span class="pre">__main__</span></code> モジュールや実行されていたスクリプトの実行が終了したことです。</p>
</dd>
<dt id="term-iterable">iterable</dt>
<dd><p class="first last">(イテラブル) 構成要素を一度に一つずつ返すことができるオブジェクトです。イテラブルの例には、(<a class="reference internal" href="library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> 、 <a class="reference internal" href="library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> 、 <a class="reference internal" href="library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a> のような) 全てのシーケンス型 、 <a class="reference internal" href="library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> 、 <a class="reference internal" href="#term-file-object"><span class="xref std std-term">ファイルオブジェクト</span></a> のような非シーケンス型、および <a class="reference internal" href="reference/datamodel.html#object.__iter__" title="object.__iter__"><code class="xref py py-meth docutils literal"><span class="pre">__iter__()</span></code></a> または <a class="reference internal" href="reference/datamodel.html#object.__getitem__" title="object.__getitem__"><code class="xref py py-meth docutils literal"><span class="pre">__getitem__()</span></code></a> メソッドを持つ任意のクラスのオブジェクトなどがあります。イテラブルは <a class="reference internal" href="reference/compound_stmts.html#for"><code class="xref std std-keyword docutils literal"><span class="pre">for</span></code></a> ループやその他シーケンスが必要な多くの場所 (<a class="reference internal" href="library/functions.html#zip" title="zip"><code class="xref py py-func docutils literal"><span class="pre">zip()</span></code></a> 、 <a class="reference internal" href="library/functions.html#map" title="map"><code class="xref py py-func docutils literal"><span class="pre">map()</span></code></a> 、 ...) で使えます。イテラブルオブジェクトが組み込み関数 <a class="reference internal" href="library/functions.html#iter" title="iter"><code class="xref py py-func docutils literal"><span class="pre">iter()</span></code></a> はの引数として渡されると、そのオブジェクトのイテレータが返ります。このイテレータは値の組を一つずつ渡すのに便利です。イテラブルを使う時、たいていは <a class="reference internal" href="library/functions.html#iter" title="iter"><code class="xref py py-func docutils literal"><span class="pre">iter()</span></code></a> を呼び出したりイテレータオブジェクトを扱う必要はありません。 <code class="docutils literal"><span class="pre">for</span></code> 文は、イテレータをループの間保持する一時的な無名変数を作成することで、自動でこれを行います。 <a class="reference internal" href="#term-iterator"><span class="xref std std-term">iterator</span></a> 、 <a class="reference internal" href="#term-sequence"><span class="xref std std-term">sequence</span></a> 、 <a class="reference internal" href="#term-generator"><span class="xref std std-term">generator</span></a> も参照してください。</p>
</dd>
<dt id="term-iterator">iterator</dt>
<dd><p class="first">(イテレータ) データの流れを表現するオブジェクトです。イテレータの <a class="reference internal" href="library/stdtypes.html#iterator.__next__" title="iterator.__next__"><code class="xref py py-meth docutils literal"><span class="pre">__next__()</span></code></a> メソッドを繰り返し呼び出す (または組み込み関数 <a class="reference internal" href="library/functions.html#next" title="next"><code class="xref py py-func docutils literal"><span class="pre">next()</span></code></a> に渡す) と、流れの中の要素を一つずつ返します。データがなくなると、代わりに <a class="reference internal" href="library/exceptions.html#StopIteration" title="StopIteration"><code class="xref py py-exc docutils literal"><span class="pre">StopIteration</span></code></a> 例外を送出します。その時点で、イテレータオブジェクトは尽きており、それ以降は <code class="xref py py-meth docutils literal"><span class="pre">__next__()</span></code> を何度呼んでも <a class="reference internal" href="library/exceptions.html#StopIteration" title="StopIteration"><code class="xref py py-exc docutils literal"><span class="pre">StopIteration</span></code></a> を送出します。イテレータは、そのイテレータオブジェクト自体を返す <a class="reference internal" href="reference/datamodel.html#object.__iter__" title="object.__iter__"><code class="xref py py-meth docutils literal"><span class="pre">__iter__()</span></code></a> メソッドを実装しなければならないので、イテレータは他の iterable を受理するほとんどの場所で利用できます。はっきりとした例外は複数の反復を行うようなコードです。 (<a class="reference internal" href="library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> のような) コンテナオブジェクトは、自身を <a class="reference internal" href="library/functions.html#iter" title="iter"><code class="xref py py-func docutils literal"><span class="pre">iter()</span></code></a> 関数にオブジェクトに渡したり <a class="reference internal" href="reference/compound_stmts.html#for"><code class="xref std std-keyword docutils literal"><span class="pre">for</span></code></a> ループ内で使うたびに、新たな未使用のイテレータを生成します。これをイテレータで行おうとすると、前回のイテレーションで使用済みの同じイテレータオブジェクトを単純に返すため、空のコンテナのようになってしまします。</p>
<p class="last">詳細な情報は <a class="reference internal" href="library/stdtypes.html#typeiter"><span class="std std-ref">イテレータ型</span></a> にあります。</p>
</dd>
<dt id="term-key-function">key function</dt>
<dd><p class="first">(キー関数) キー関数、あるいは照合関数とは、ソートや順序比較のための値を返す呼び出し可能オブジェクト(callable)です。例えば、 <a class="reference internal" href="library/locale.html#locale.strxfrm" title="locale.strxfrm"><code class="xref py py-func docutils literal"><span class="pre">locale.strxfrm()</span></code></a> をキー関数に使えば、ロケール依存のソートの慣習にのっとったソートキーを返します。</p>
<p>Python の多くのツールはキー関数を受け取り要素の並び順やグループ化を管理します。
<a class="reference internal" href="library/functions.html#min" title="min"><code class="xref py py-func docutils literal"><span class="pre">min()</span></code></a>, <a class="reference internal" href="library/functions.html#max" title="max"><code class="xref py py-func docutils literal"><span class="pre">max()</span></code></a>, <a class="reference internal" href="library/functions.html#sorted" title="sorted"><code class="xref py py-func docutils literal"><span class="pre">sorted()</span></code></a>, <a class="reference internal" href="library/stdtypes.html#list.sort" title="list.sort"><code class="xref py py-meth docutils literal"><span class="pre">list.sort()</span></code></a>, <a class="reference internal" href="library/heapq.html#heapq.merge" title="heapq.merge"><code class="xref py py-func docutils literal"><span class="pre">heapq.merge()</span></code></a>, <a class="reference internal" href="library/heapq.html#heapq.nsmallest" title="heapq.nsmallest"><code class="xref py py-func docutils literal"><span class="pre">heapq.nsmallest()</span></code></a>, <a class="reference internal" href="library/heapq.html#heapq.nlargest" title="heapq.nlargest"><code class="xref py py-func docutils literal"><span class="pre">heapq.nlargest()</span></code></a>, <a class="reference internal" href="library/itertools.html#itertools.groupby" title="itertools.groupby"><code class="xref py py-func docutils literal"><span class="pre">itertools.groupby()</span></code></a> 等があります。</p>
<p class="last">キー関数を作る方法はいくつかあります。
例えば <a class="reference internal" href="library/stdtypes.html#str.lower" title="str.lower"><code class="xref py py-meth docutils literal"><span class="pre">str.lower()</span></code></a> メソッドを大文字小文字を区別しないソートを行うキー関数として使うことが出来ます。
あるいは、<code class="docutils literal"><span class="pre">lambda</span> <span class="pre">r:</span> <span class="pre">(r[0],</span> <span class="pre">r[2])</span></code> のような <a class="reference internal" href="reference/expressions.html#lambda"><code class="xref std std-keyword docutils literal"><span class="pre">lambda</span></code></a> 式からキー関数を作ることができます。
また、 <a class="reference internal" href="library/operator.html#module-operator" title="operator: Functions corresponding to the standard operators."><code class="xref py py-mod docutils literal"><span class="pre">operator</span></code></a> モジュールは <a class="reference internal" href="library/operator.html#operator.attrgetter" title="operator.attrgetter"><code class="xref py py-func docutils literal"><span class="pre">attrgetter()</span></code></a>, <a class="reference internal" href="library/operator.html#operator.itemgetter" title="operator.itemgetter"><code class="xref py py-func docutils literal"><span class="pre">itemgetter()</span></code></a>, <a class="reference internal" href="library/operator.html#operator.methodcaller" title="operator.methodcaller"><code class="xref py py-func docutils literal"><span class="pre">methodcaller()</span></code></a> という 3 つのキー関数コンストラクタを提供しています。
キー関数の作り方と使い方の例は <a class="reference internal" href="howto/sorting.html#sortinghowto"><span class="std std-ref">Sorting HOW TO</span></a> を参照してください。</p>
</dd>
<dt id="term-keyword-argument">keyword argument</dt>
<dd><p class="first last"><a class="reference internal" href="#term-argument"><span class="xref std std-term">実引数</span></a> を参照してください。</p>
</dd>
<dt id="term-lambda">lambda</dt>
<dd><p class="first last">(ラムダ) 無名のインライン関数で、関数が呼び出されたときに評価される 1 つの式 (<a class="reference internal" href="#term-expression"><span class="xref std std-term">expression</span></a>) を含みます。ラムダ関数を作る構文は <code class="docutils literal"><span class="pre">lambda</span> <span class="pre">[arguments]:</span> <span class="pre">expression</span></code> です。</p>
</dd>
<dt id="term-lbyl">LBYL</dt>
<dd><p class="first">「ころばぬ先の杖 (look before you leap)」 の略です。このコーディングスタイルでは、呼び出しや検索を行う前に、明示的に前提条件 (pre-condition) 判定を行います。 <a class="reference internal" href="#term-eafp"><span class="xref std std-term">EAFP</span></a> アプローチと対照的で、 <a class="reference internal" href="reference/compound_stmts.html#if"><code class="xref std std-keyword docutils literal"><span class="pre">if</span></code></a> 文がたくさん使われるのが特徴的です。</p>
<p class="last">マルチスレッド化された環境では、LBYL アプローチは “見る” 過程と “飛ぶ” 過程の競合状態を引き起こすリスクがあります。例えば、<code class="docutils literal"><span class="pre">if</span> <span class="pre">key</span> <span class="pre">in</span> <span class="pre">mapping:</span> <span class="pre">return</span> <span class="pre">mapping[key]</span></code> というコードは、判定の後、別のスレッドが探索の前に <em>mapping</em> から <em>key</em> を取り除くと失敗します。この問題は、ロックするか EAFP アプローチを使うことで解決できます。</p>
</dd>
<dt id="term-list">list</dt>
<dd><p class="first last">(リスト) Python の組み込みのシーケンス (<a class="reference internal" href="#term-sequence"><span class="xref std std-term">sequence</span></a>) です。リストという名前ですが、リンクリストではなく、他の言語で言う配列 (array) と同種のもので、要素へのアクセスは O(1) です。</p>
</dd>
<dt id="term-list-comprehension">list comprehension</dt>
<dd><p class="first last">(リスト内包表記) シーケンス中の全てあるいは一部の要素を処理して、その結果からなるリストを返す、コンパクトな方法です。 <code class="docutils literal"><span class="pre">result</span> <span class="pre">=</span> <span class="pre">['{:#04x}'.format(x)</span> <span class="pre">for</span> <span class="pre">x</span> <span class="pre">in</span> <span class="pre">range(256)</span> <span class="pre">if</span> <span class="pre">x</span> <span class="pre">%</span> <span class="pre">2</span> <span class="pre">==</span> <span class="pre">0]</span></code> とすると、 0 から 255 までの偶数を 16進数表記 (0x..) した文字列からなるリストを生成します。 <a class="reference internal" href="reference/compound_stmts.html#if"><code class="xref std std-keyword docutils literal"><span class="pre">if</span></code></a> 節はオプションです。 <a class="reference internal" href="reference/compound_stmts.html#if"><code class="xref std std-keyword docutils literal"><span class="pre">if</span></code></a> 節がない場合、 <code class="docutils literal"><span class="pre">range(256)</span></code> の全ての要素が処理されます。</p>
</dd>
<dt id="term-loader">loader</dt>
<dd><p class="first last">モジュールをロードするオブジェクト。 <code class="xref py py-meth docutils literal"><span class="pre">load_module()</span></code> という名前のメソッドを定義していなければなりません。ローダーは一般的に <a class="reference internal" href="#term-finder"><span class="xref std std-term">finder</span></a> から返されます。詳細は <span class="target" id="index-61"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0302"><strong>PEP 302</strong></a> を、 <a class="reference internal" href="#term-abstract-base-class"><span class="xref std std-term">abstract base class</span></a> については <a class="reference internal" href="library/importlib.html#importlib.abc.Loader" title="importlib.abc.Loader"><code class="xref py py-class docutils literal"><span class="pre">importlib.abc.Loader</span></code></a> を参照してください。</p>
</dd>
<dt id="term-mapping">mapping</dt>
<dd><p class="first last">(マッピング) 任意のキー探索をサポートしていて、 <a class="reference internal" href="library/collections.abc.html#collections.abc.Mapping" title="collections.abc.Mapping"><code class="xref py py-class docutils literal"><span class="pre">Mapping</span></code></a> か <a class="reference internal" href="library/collections.abc.html#collections.abc.MutableMapping" title="collections.abc.MutableMapping"><code class="xref py py-class docutils literal"><span class="pre">MutableMapping</span></code></a> の <a class="reference internal" href="library/collections.abc.html#collections-abstract-base-classes"><span class="std std-ref">抽象基底クラス</span></a> で指定されたメソッドを実装しているコンテナオブジェクトです。例えば、 <a class="reference internal" href="library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a>, <a class="reference internal" href="library/collections.html#collections.defaultdict" title="collections.defaultdict"><code class="xref py py-class docutils literal"><span class="pre">collections.defaultdict</span></code></a>, <a class="reference internal" href="library/collections.html#collections.OrderedDict" title="collections.OrderedDict"><code class="xref py py-class docutils literal"><span class="pre">collections.OrderedDict</span></code></a>, <a class="reference internal" href="library/collections.html#collections.Counter" title="collections.Counter"><code class="xref py py-class docutils literal"><span class="pre">collections.Counter</span></code></a> などです。</p>
</dd>
<dt id="term-meta-path-finder">meta path finder</dt>
<dd><p class="first"><a class="reference internal" href="library/sys.html#sys.meta_path" title="sys.meta_path"><code class="xref py py-data docutils literal"><span class="pre">sys.meta_path</span></code></a> を検索して得られた <a class="reference internal" href="#term-finder"><span class="xref std std-term">finder</span></a>.
meta path finder は <a class="reference internal" href="#term-path-entry-finder"><span class="xref std std-term">path entry finder</span></a> と関係はありますが、別物です。</p>
<p class="last">meta path finder が実装するメソッドについては <a class="reference internal" href="library/importlib.html#importlib.abc.MetaPathFinder" title="importlib.abc.MetaPathFinder"><code class="xref py py-class docutils literal"><span class="pre">importlib.abc.MetaPathFinder</span></code></a> を参照してください。</p>
</dd>
<dt id="term-metaclass">metaclass</dt>
<dd><p class="first">(メタクラス) クラスのクラスです。クラス定義は、クラス名、クラスの辞書と、基底クラスのリストを作ります。メタクラスは、それら 3 つを引数として受け取り、クラスを作る責任を負います。ほとんどのオブジェクト指向言語は(訳注:メタクラスの)デフォルトの実装を提供しています。Python が特別なのはカスタムのメタクラスを作成できる点です。ほとんどのユーザーに取って、メタクラスは全く必要のないものです。しかし、一部の場面では、メタクラスは強力でエレガントな方法を提供します。たとえば属性アクセスのログを取ったり、スレッドセーフ性を追加したり、オブジェクトの生成を追跡したり、シングルトンを実装するなど、多くの場面で利用されます。</p>
<p class="last">詳細は <a class="reference internal" href="reference/datamodel.html#metaclasses"><span class="std std-ref">クラス生成をカスタマイズする</span></a> を参照してください。</p>
</dd>
<dt id="term-method">メソッド</dt>
<dd><p class="first last">(メソッド) クラス本体の中で定義された関数。そのクラスのインスタンスの属性として呼び出された場合、メソッドはインスタンスオブジェクトを第一引数 (<a class="reference internal" href="#term-argument"><span class="xref std std-term">argument</span></a>) として受け取ります (この第一引数は通常 <code class="docutils literal"><span class="pre">self</span></code> と呼ばれます)。 <a class="reference internal" href="#term-function"><span class="xref std std-term">関数</span></a> と <a class="reference internal" href="#term-nested-scope"><span class="xref std std-term">ネストされたスコープ</span></a> も参照してください。</p>
</dd>
<dt id="term-method-resolution-order">method resolution order</dt>
<dd><p class="first last">(メソッド解決順序)
探索中に基底クラスが構成要素を検索される順番です。
2.3 以降の Python インタープリタが使用するアルゴリズムの詳細については <a class="reference external" href="https://www.python.org/download/releases/2.3/mro/">The Python 2.3 Method Resolution Order</a> を参照してください。</p>
</dd>
<dt id="term-module">module</dt>
<dd><p class="first">(モジュール) Python コードの組織単位としてはたらくオブジェクトです。モジュールは任意の Python オブジェクトを含む名前空間を持ちます。モジュールは <a class="reference internal" href="#term-importing"><span class="xref std std-term">importing</span></a> の処理によって Python に読み込まれます。</p>
<p class="last"><a class="reference internal" href="#term-package"><span class="xref std std-term">パッケージ</span></a> を参照してください。</p>
</dd>
<dt id="term-module-spec">module spec</dt>
<dd><p class="first last">モジュールをロードするのに使われるインポート関連の情報を含む名前空間です。
<a class="reference internal" href="library/importlib.html#importlib.machinery.ModuleSpec" title="importlib.machinery.ModuleSpec"><code class="xref py py-class docutils literal"><span class="pre">importlib.machinery.ModuleSpec</span></code></a> のインスタンスです。</p>
</dd>
<dt id="term-mro">MRO</dt>
<dd><p class="first last"><a class="reference internal" href="#term-method-resolution-order"><span class="xref std std-term">method resolution order</span></a> を参照してください。</p>
</dd>
<dt id="term-mutable">mutable</dt>
<dd><p class="first last">(ミュータブル) ミュータブルなオブジェクトは、 <a class="reference internal" href="library/functions.html#id" title="id"><code class="xref py py-func docutils literal"><span class="pre">id()</span></code></a> を変えることなく値を変更できます。イミュータブル (<a class="reference internal" href="#term-immutable"><span class="xref std std-term">immutable</span></a>) も参照してください。</p>
</dd>
<dt id="term-named-tuple">named tuple</dt>
<dd><p class="first">(名前付きタプル) タプルに似ていて、インデクス指定できる要素に名前付き属性でもアクセス出来るクラスです (例えば、 <a class="reference internal" href="library/time.html#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">time.localtime()</span></code></a> はタプルに似たオブジェクトを返し、その <em>year</em> には <code class="docutils literal"><span class="pre">t[0]</span></code> のようなインデクスによるアクセスと、 <code class="docutils literal"><span class="pre">t.tm_year</span></code> のような名前付き要素としてのアクセスが可能です)。</p>
<p class="last">名前付きタプルには、 <a class="reference internal" href="library/time.html#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">time.struct_time</span></code></a> のような組み込み型もありますし、通常のクラス定義によって作成することもできます。名前付きタプルを <a class="reference internal" href="library/collections.html#collections.namedtuple" title="collections.namedtuple"><code class="xref py py-func docutils literal"><span class="pre">collections.namedtuple()</span></code></a> ファクトリ関数で作成することもできます。最後の方法で作った名前付きタプルには自動的に、 <code class="docutils literal"><span class="pre">Employee(name='jones',</span> <span class="pre">title='programmer')</span></code> のような自己ドキュメント表現 (self-documenting representation) などの機能が付いてきます。</p>
</dd>
<dt id="term-namespace">namespace</dt>
<dd><p class="first last">(名前空間) 変数が格納される場所です。名前空間は辞書として実装されます。名前空間にはオブジェクトの (メソッドの) 入れ子になったものだけでなく、局所的なもの、大域的なもの、そして組み込みのものがあります。名前空間は名前の衝突を防ぐことによってモジュール性をサポートする。例えば関数 <a class="reference internal" href="library/functions.html#open" title="open"><code class="xref py py-func docutils literal"><span class="pre">builtins.open</span></code></a> と <a class="reference internal" href="library/os.html#os.open" title="os.open"><code class="xref py py-func docutils literal"><span class="pre">os.open()</span></code></a> は名前空間で区別されています。また、どのモジュールが関数を実装しているか明示することによって名前空間は可読性と保守性を支援します。例えば、<a class="reference internal" href="library/random.html#random.seed" title="random.seed"><code class="xref py py-func docutils literal"><span class="pre">random.seed()</span></code></a> や <a class="reference internal" href="library/itertools.html#itertools.islice" title="itertools.islice"><code class="xref py py-func docutils literal"><span class="pre">itertools.islice()</span></code></a> と書くと、それぞれモジュール <a class="reference internal" href="library/random.html#module-random" title="random: Generate pseudo-random numbers with various common distributions."><code class="xref py py-mod docutils literal"><span class="pre">random</span></code></a> や <a class="reference internal" href="library/itertools.html#module-itertools" title="itertools: Functions creating iterators for efficient looping."><code class="xref py py-mod docutils literal"><span class="pre">itertools</span></code></a> で実装されていることが明らかです。</p>
</dd>
<dt id="term-namespace-package">namespace package</dt>
<dd><p class="first">(名前空間パッケージ) サブパッケージのコンテナとして提供される <span class="target" id="index-62"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0420"><strong>PEP 420</strong></a> <a class="reference internal" href="#term-package"><span class="xref std std-term">package</span></a> 。Namespace package はおそらく物理表現を持たず、 <code class="docutils literal"><span class="pre">__init__.py</span></code> ファイルがないため、 <a class="reference internal" href="#term-regular-package"><span class="xref std std-term">regular package</span></a> と異なります。</p>
<p class="last"><a class="reference internal" href="#term-module"><span class="xref std std-term">module</span></a> を参照してください。</p>
</dd>
<dt id="term-nested-scope">nested scope</dt>
<dd><p class="first last">(ネストされたスコープ) 外側で定義されている変数を参照する機能です。例えば、ある関数が別の関数の中で定義されている場合、内側の関数は外側の関数中の変数を参照できます。ネストされたスコープはデフォルトでは変数の参照だけができ、変数の代入はできないので注意してください。ローカル変数は、最も内側のスコープで変数を読み書きします。同様に、グローバル変数を使うとグローバル名前空間の値を読み書きします。 <a class="reference internal" href="reference/simple_stmts.html#nonlocal"><code class="xref std std-keyword docutils literal"><span class="pre">nonlocal</span></code></a> で外側の変数に書き込めます。</p>
</dd>
<dt id="term-new-style-class">new-style class</dt>
<dd><p class="first last">(新スタイルクラス) 今では全てのクラスオブジェクトに使われている味付けの古い名前です。以前の Python のバージョンでは、新スタイルクラスのみが <a class="reference internal" href="reference/datamodel.html#object.__slots__" title="object.__slots__"><code class="xref py py-attr docutils literal"><span class="pre">__slots__</span></code></a> 、デスクリプタ、 <a class="reference internal" href="reference/datamodel.html#object.__getattribute__" title="object.__getattribute__"><code class="xref py py-meth docutils literal"><span class="pre">__getattribute__()</span></code></a> 、クラスメソッド、そして静的メソッド等の Python の新しい、多様な機能を利用できました。</p>
</dd>
<dt id="term-object">object</dt>
<dd><p class="first last">(オブジェクト) 状態 (属性や値) と定義された振る舞い (メソッド) をもつ全てのデータ。もしくは、全ての新スタイルクラス (<a class="reference internal" href="#term-new-style-class"><span class="xref std std-term">new-style class</span></a>) の究極の基底クラスのこと。</p>
</dd>
<dt id="term-package">package</dt>
<dd><p class="first">(パッケージ) サブモジュールや再帰的にサブパッケージを含むことの出来る <a class="reference internal" href="#term-module"><span class="xref std std-term">module</span></a> のことです。専門的には、パッケージは <code class="docutils literal"><span class="pre">__path__</span></code> 属性を持つ Python オブジェクトです。</p>
<p class="last"><a class="reference internal" href="#term-regular-package"><span class="xref std std-term">regular package</span></a> と <a class="reference internal" href="#term-namespace-package"><span class="xref std std-term">namespace package</span></a> を参照してください。</p>
</dd>
<dt id="term-parameter">parameter</dt>
<dd><p class="first">(仮引数) 名前付の実体で <a class="reference internal" href="#term-function"><span class="xref std std-term">関数</span></a> (や <a class="reference internal" href="#term-method"><span class="xref std std-term">メソッド</span></a> ) の定義において関数が受ける <a class="reference internal" href="#term-argument"><span class="xref std std-term">実引数</span></a> を指定します。仮引数には5種類あります:</p>
<ul>
<li><p class="first"><em class="dfn">位置またはキーワード</em>: <a class="reference internal" href="#term-argument"><span class="xref std std-term">位置</span></a> でまたは <a class="reference internal" href="#term-argument"><span class="xref std std-term">キーワード引数</span></a> として渡すことができる引数を指定します。これはたとえば以下の <em>foo</em> や <em>bar</em> のように、デフォルトの仮引数の種類です:</p>
<div class="highlight-python3"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">foo</span><span class="p">,</span> <span class="n">bar</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="o">...</span>
</pre></div>
</div>
</li>
<li><p class="first"><em class="dfn">位置専用</em>: 位置によってのみ与えられる引数を指定します。Python に位置専用仮引数を定義する文法はありません。しかし、組み込み関数には位置専用仮引数を持つもの (例: <a class="reference internal" href="library/functions.html#abs" title="abs"><code class="xref py py-func docutils literal"><span class="pre">abs()</span></code></a>) があります。</p>
</li>
</ul>
<ul id="keyword-only-parameter">
<li><p class="first"><em class="dfn">キーワード専用</em>: キーワードによってのみ与えられる引数を指定します。キーワード専用引数を定義できる場所は、例えば以下の <em>kw_only1</em> や <em>kw_only2</em> のように、関数定義の仮引数リストに含めた可変長位置引数または裸の <code class="docutils literal"><span class="pre">*</span></code> の後です:</p>
<div class="highlight-python3"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">kw_only1</span><span class="p">,</span> <span class="n">kw_only2</span><span class="p">):</span> <span class="o">...</span>
</pre></div>
</div>
</li>
<li><p class="first"><em class="dfn">可変長位置</em>: (他の仮引数で既に受けられた任意の位置引数に加えて) 任意の個数の位置引数が与えられることを指定します。このような仮引数は、以下の <em>args</em> のように仮引数名の前に <code class="docutils literal"><span class="pre">*</span></code> をつけることで定義できます:</p>
<div class="highlight-python3"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> <span class="o">...</span>
</pre></div>
</div>
</li>
<li><p class="first"><em class="dfn">可変長キーワード</em>: (他の仮引数で既に受けられた任意のキーワード引数に加えて) 任意の個数のキーワード引数が与えられることを指定します。このような仮引数は、上の例の <em>kwargs</em> のように仮引数名の前に <code class="docutils literal"><span class="pre">**</span></code> をつけることで定義できます。</p>
</li>
</ul>
<p>仮引数はオプションと必須の引数のどちらも指定でき、オプションの引数にはデフォルト値も指定できます。</p>
<p class="last"><a class="reference internal" href="#term-parameter"><span class="xref std std-term">仮引数</span></a> 、FAQ の <a class="reference internal" href="faq/programming.html#faq-argument-vs-parameter"><span class="std std-ref">実引数と仮引数の違いは何ですか?</span></a> 、<a class="reference internal" href="library/inspect.html#inspect.Parameter" title="inspect.Parameter"><code class="xref py py-class docutils literal"><span class="pre">inspect.Parameter</span></code></a> クラス、 <a class="reference internal" href="reference/compound_stmts.html#function"><span class="std std-ref">関数定義</span></a> セクション、<span class="target" id="index-63"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0362"><strong>PEP 362</strong></a> を参照してください。</p>
</dd>
<dt id="term-path-entry">path entry</dt>
<dd><p class="first last"><a class="reference internal" href="#term-path-based-finder"><span class="xref std std-term">path based finder</span></a> が import するモジュールを探す <a class="reference internal" href="#term-import-path"><span class="xref std std-term">import path</span></a> 上の1つの場所です。</p>
</dd>
<dt id="term-path-entry-finder">path entry finder</dt>
<dd><p class="first"><a class="reference internal" href="library/sys.html#sys.path_hooks" title="sys.path_hooks"><code class="xref py py-data docutils literal"><span class="pre">sys.path_hooks</span></code></a> にある callable (<a class="reference internal" href="#term-path-entry-hook"><span class="xref std std-term">path entry hook</span></a>) が返した <a class="reference internal" href="#term-finder"><span class="xref std std-term">finder</span></a> です。与えられた <a class="reference internal" href="#term-path-entry"><span class="xref std std-term">path entry</span></a> にあるモジュールを見つける方法を知っています。</p>
<p class="last">パスエントリーファインダが実装するメソッドについては <a class="reference internal" href="library/importlib.html#importlib.abc.PathEntryFinder" title="importlib.abc.PathEntryFinder"><code class="xref py py-class docutils literal"><span class="pre">importlib.abc.PathEntryFinder</span></code></a> を参照してください。</p>
</dd>
<dt id="term-path-entry-hook">path entry hook</dt>
<dd><p class="first last"><code class="xref py py-data docutils literal"><span class="pre">sys.path_hook</span></code> リストにある callable で、指定された <a class="reference internal" href="#term-path-entry"><span class="xref std std-term">path entry</span></a> にあるモジュールを見つける方法を知っている場合に <a class="reference internal" href="#term-path-entry-finder"><span class="xref std std-term">path entry finder</span></a> を返します。</p>
</dd>
<dt id="term-path-based-finder">path based finder</dt>
<dd><p class="first last">デフォルトの <a class="reference internal" href="#term-meta-path-finder"><span class="xref std std-term">meta path finder</span></a> の1つは、モジュールの <a class="reference internal" href="#term-import-path"><span class="xref std std-term">import path</span></a> を検索します。</p>
</dd>
<dt id="term-portion">portion</dt>
<dd><p class="first last"><span class="target" id="index-64"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0420"><strong>PEP 420</strong></a> で定義されている、namespace package に属する、複数のファイルが (zipファイルに格納されている場合もある) 1つのディレクトリに格納されたもの。</p>
</dd>
<dt id="term-positional-argument">位置引数 (positional argument、固定引数)</dt>
<dd><p class="first last"><a class="reference internal" href="#term-argument"><span class="xref std std-term">実引数</span></a> を参照してください。</p>
</dd>
<dt id="term-provisional-api">provisional API</dt>
<dd><p class="first">(暫定 API) 標準ライブラリの後方互換性保証から計画的に除外されたものです。そのようなインタフェースへの大きな変更は、暫定であるとされている間は期待されていませんが、コア開発者によって必要とみなされれば、後方非互換な変更 (インタフェースの削除まで含まれる) が行われえます。このような変更はむやみに行われるものではありません – これは API を組み込む前には見落とされていた重大な欠陥が露呈したときにのみ行われます。</p>
<p>暫定 API についても、後方互換性のない変更は「最終手段」とみなされています。問題点が判明した場合でも後方互換な解決策を探すべきです。</p>
<p class="last">このプロセスにより、標準ライブラリは問題となるデザインエラーに長い間閉じ込められることなく、時代を超えて進化を続けられます。詳細は <span class="target" id="index-65"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0411"><strong>PEP 411</strong></a> を参照してください。</p>
</dd>
<dt id="term-provisional-package">provisional package</dt>
<dd><p class="first last"><a class="reference internal" href="#term-provisional-api"><span class="xref std std-term">provisional API</span></a> を参照してください。</p>
</dd>
<dt id="term-python-3000">Python 3000</dt>
<dd><p class="first last">Python 3.x リリースラインのニックネームです。(Python 3 が遠い将来の話だった頃に作られた言葉です。) “Py3k” と略されることもあります。</p>
</dd>
<dt id="term-pythonic">Pythonic</dt>
<dd><p class="first">他の言語で一般的な考え方で書かれたコードではなく、Python の特に一般的なイディオムに従った考え方やコード片。例えば、Python の一般的なイディオムでは <a class="reference internal" href="reference/compound_stmts.html#for"><code class="xref std std-keyword docutils literal"><span class="pre">for</span></code></a> 文を使ってイテラブルのすべての要素に渡ってループします。他の多くの言語にはこの仕組みはないので、Python に慣れていない人は代わりに数値のカウンターを使うかもしれません:</p>
<div class="highlight-python3"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">food</span><span class="p">)):</span>
<span class="nb">print</span><span class="p">(</span><span class="n">food</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</pre></div>
</div>
<p>これに対し、きれいな Pythonic な方法は:</p>
<div class="last highlight-python3"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">piece</span> <span class="ow">in</span> <span class="n">food</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="n">piece</span><span class="p">)</span>
</pre></div>
</div>
</dd>
<dt id="term-qualified-name">qualified name</dt>
<dd><p class="first">(修飾名) モジュールのグローバルスコープから、そのモジュールで定義されたクラス、関数、メソッドへの、 “パス” を表すドット名表記です。 <span class="target" id="index-66"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-3155"><strong>PEP 3155</strong></a> で定義されています。トップレベルの関数やクラスでは、修飾名はオブジェクトの名前と同じです:</p>
<div class="highlight-python3"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">class</span> <span class="nc">C</span><span class="p">:</span>
<span class="gp">... </span> <span class="k">class</span> <span class="nc">D</span><span class="p">:</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">meth</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">pass</span>
<span class="gp">...</span>
<span class="gp">>>> </span><span class="n">C</span><span class="o">.</span><span class="vm">__qualname__</span>
<span class="go">'C'</span>
<span class="gp">>>> </span><span class="n">C</span><span class="o">.</span><span class="n">D</span><span class="o">.</span><span class="vm">__qualname__</span>
<span class="go">'C.D'</span>
<span class="gp">>>> </span><span class="n">C</span><span class="o">.</span><span class="n">D</span><span class="o">.</span><span class="n">meth</span><span class="o">.</span><span class="vm">__qualname__</span>
<span class="go">'C.D.meth'</span>
</pre></div>
</div>
<p>モジュールへの参照で使われると、<em>完全修飾名 (fully qualified name)</em> はすべての親パッケージを含む全体のドット名表記、例えば <code class="docutils literal"><span class="pre">email.mime.text</span></code> を意味します:</p>
<div class="last highlight-python3"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span> <span class="nn">email.mime.text</span>
<span class="gp">>>> </span><span class="n">email</span><span class="o">.</span><span class="n">mime</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="vm">__name__</span>
<span class="go">'email.mime.text'</span>
</pre></div>
</div>
</dd>
<dt id="term-reference-count">reference count</dt>
<dd><p class="first last">(参照カウント) あるオブジェクトに対する参照の数。参照カウントが0になったとき、そのオブジェクトは破棄されます。参照カウントは通常は Python のコード上には現れませんが、 <a class="reference internal" href="#term-cpython"><span class="xref std std-term">CPython</span></a> 実装の重要な要素です。 <a class="reference internal" href="library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal"><span class="pre">sys</span></code></a> モジュールは、プログラマーが任意のオブジェクトの参照カウントを知るための <a class="reference internal" href="library/sys.html#sys.getrefcount" title="sys.getrefcount"><code class="xref py py-func docutils literal"><span class="pre">getrefcount()</span></code></a> 関数を提供しています。</p>
</dd>
<dt id="term-regular-package">regular package</dt>
<dd><p class="first">伝統的な、 <code class="docutils literal"><span class="pre">__init__.py</span></code> ファイルを含むディレクトリとしての <a class="reference internal" href="#term-package"><span class="xref std std-term">package</span></a>。</p>
<p class="last"><a class="reference internal" href="#term-namespace-package"><span class="xref std std-term">namespace package</span></a> を参照してください。</p>
</dd>
<dt id="term-slots">__slots__</dt>
<dd><p class="first last">クラス内での宣言で、インスタンス属性の領域をあらかじめ定義しておき、インスタンス辞書を排除することで、メモリを節約します。これはよく使われるテクニックですが、正しく扱うには少しトリッキーなので、稀なケース、例えばメモリが死活問題となるアプリケーションでインスタンスが大量に存在する、といったときを除き、使わないのがベストです。</p>
</dd>
<dt id="term-sequence">sequence</dt>
<dd><p class="first">(シーケンス) 整数インデクスによる効率的な要素アクセスを <a class="reference internal" href="reference/datamodel.html#object.__getitem__" title="object.__getitem__"><code class="xref py py-meth docutils literal"><span class="pre">__getitem__()</span></code></a> 特殊メソッドを通じてサポートし、長さを返す <a class="reference internal" href="reference/datamodel.html#object.__len__" title="object.__len__"><code class="xref py py-meth docutils literal"><span class="pre">__len__()</span></code></a> メソッドを定義した <a class="reference internal" href="#term-iterable"><span class="xref std std-term">iterable</span></a> です。組み込みシーケンス型には、 <a class="reference internal" href="library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>, <a class="reference internal" href="library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>, <a class="reference internal" href="library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></a>, <a class="reference internal" href="library/functions.html#bytes" title="bytes"><code class="xref py py-class docutils literal"><span class="pre">bytes</span></code></a> などがあります。 <a class="reference internal" href="library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a> は <a class="reference internal" href="reference/datamodel.html#object.__getitem__" title="object.__getitem__"><code class="xref py py-meth docutils literal"><span class="pre">__getitem__()</span></code></a> と <a class="reference internal" href="reference/datamodel.html#object.__len__" title="object.__len__"><code class="xref py py-meth docutils literal"><span class="pre">__len__()</span></code></a> もサポートしますが、検索の際に整数ではなく任意の <a class="reference internal" href="#term-immutable"><span class="xref std std-term">immutable</span></a> なキーを使うため、シーケンスではなくマッピング (mapping) とみなされているので注意してください。</p>
<p class="last"><a class="reference internal" href="library/collections.abc.html#collections.abc.Sequence" title="collections.abc.Sequence"><code class="xref py py-class docutils literal"><span class="pre">collections.abc.Sequence</span></code></a> 抽象基底クラスは
<a class="reference internal" href="reference/datamodel.html#object.__getitem__" title="object.__getitem__"><code class="xref py py-meth docutils literal"><span class="pre">__getitem__()</span></code></a> や <a class="reference internal" href="reference/datamodel.html#object.__len__" title="object.__len__"><code class="xref py py-meth docutils literal"><span class="pre">__len__()</span></code></a> だけでなく <code class="xref py py-meth docutils literal"><span class="pre">count()</span></code>、<code class="xref py py-meth docutils literal"><span class="pre">index()</span></code>,、<a class="reference internal" href="reference/datamodel.html#object.__contains__" title="object.__contains__"><code class="xref py py-meth docutils literal"><span class="pre">__contains__()</span></code></a>、<a class="reference internal" href="reference/datamodel.html#object.__reversed__" title="object.__reversed__"><code class="xref py py-meth docutils literal"><span class="pre">__reversed__()</span></code></a> よりも
豊富なインターフェイスを定義しています。この拡張されたインターフェイスを実装している型は <code class="xref py py-func docutils literal"><span class="pre">register()</span></code> を使用することで明示的に登録することが出来ます。</p>
</dd>
<dt id="term-single-dispatch">single dispatch</dt>
<dd><p class="first last"><a class="reference internal" href="#term-generic-function"><span class="xref std std-term">generic function</span></a> の一種で実装は一つの引数の型により選択されます。</p>
</dd>
<dt id="term-slice">slice</dt>
<dd><p class="first last">(スライス) 一般にシーケンス (<a class="reference internal" href="#term-sequence"><span class="xref std std-term">sequence</span></a>) の一部を含むオブジェクト。スライスは、添字表記 <code class="docutils literal"><span class="pre">[]</span></code> で与えられた複数の数の間にコロンを書くことで作られます。例えば、 <code class="docutils literal"><span class="pre">variable_name[1:3:5]</span></code> です。角括弧 (添字) 記号は <a class="reference internal" href="library/functions.html#slice" title="slice"><code class="xref py py-class docutils literal"><span class="pre">slice</span></code></a> オブジェクトを内部で利用しています。</p>
</dd>
<dt id="term-special-method">special method</dt>
<dd><p class="first last">(特殊メソッド) ある型に特定の操作、例えば加算をするために Python から暗黙に呼び出されるメソッド。この種類のメソッドは、メソッド名の最初と最後にアンダースコア 2 つがついています。特殊メソッドについては <a class="reference internal" href="reference/datamodel.html#specialnames"><span class="std std-ref">特殊メソッド名</span></a> で解説されています。</p>
</dd>
<dt id="term-statement">statement</dt>
<dd><p class="first last">(文) 文はスイート (コードの”ブロック”) に不可欠な要素です。文は <a class="reference internal" href="#term-expression"><span class="xref std std-term">式</span></a> かキーワードから構成されるもののどちらかです。後者には <a class="reference internal" href="reference/compound_stmts.html#if"><code class="xref std std-keyword docutils literal"><span class="pre">if</span></code></a>、<a class="reference internal" href="reference/compound_stmts.html#while"><code class="xref std std-keyword docutils literal"><span class="pre">while</span></code></a>、<a class="reference internal" href="reference/compound_stmts.html#for"><code class="xref std std-keyword docutils literal"><span class="pre">for</span></code></a> があります。</p>
</dd>
<dt id="term-struct-sequence">struct sequence</dt>
<dd><p class="first last">(構造体シーケンス) 名付けられた要素を持つタプルです。構造体シーケンスは <a class="reference internal" href="#term-named-tuple"><span class="xref std std-term">named tuple</span></a> と同じく、要素にインデクスでも属性でもアクセスできるインタフェースを公開します。しかし、名前付きタプルの <a class="reference internal" href="library/collections.html#collections.somenamedtuple._make" title="collections.somenamedtuple._make"><code class="xref py py-meth docutils literal"><span class="pre">_make()</span></code></a> や <a class="reference internal" href="library/collections.html#collections.somenamedtuple._asdict" title="collections.somenamedtuple._asdict"><code class="xref py py-meth docutils literal"><span class="pre">_asdict()</span></code></a> のようなメソッドを持ちません。構造体シーケンスの例には、<a class="reference internal" href="library/sys.html#sys.float_info" title="sys.float_info"><code class="xref py py-data docutils literal"><span class="pre">sys.float_info</span></code></a> や、 <a class="reference internal" href="library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal"><span class="pre">os.stat()</span></code></a> の返り値や、その他があります。</p>
</dd>
<dt id="term-text-encoding">text encoding</dt>
<dd><p class="first last">ユニコード文字列をエンコードするコーデックです。</p>
</dd>
<dt id="term-text-file">text file</dt>
<dd><p class="first">A <a class="reference internal" href="#term-file-object"><span class="xref std std-term">file object</span></a> able to read and write <a class="reference internal" href="library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a> objects.
Often, a text file actually accesses a byte-oriented datastream
and handles the <a class="reference internal" href="#term-text-encoding"><span class="xref std std-term">text encoding</span></a> automatically.
Examples of text files are files opened in text mode (<code class="docutils literal"><span class="pre">'r'</span></code> or <code class="docutils literal"><span class="pre">'w'</span></code>),
<a class="reference internal" href="library/sys.html#sys.stdin" title="sys.stdin"><code class="xref py py-data docutils literal"><span class="pre">sys.stdin</span></code></a>, <a class="reference internal" href="library/sys.html#sys.stdout" title="sys.stdout"><code class="xref py py-data docutils literal"><span class="pre">sys.stdout</span></code></a>, and instances of
<a class="reference internal" href="library/io.html#io.StringIO" title="io.StringIO"><code class="xref py py-class docutils literal"><span class="pre">io.StringIO</span></code></a>.</p>
<div class="last admonition seealso">
<p class="first admonition-title">参考</p>
<p class="last"><a class="reference internal" href="#term-binary-file"><span class="xref std std-term">binary file</span></a> ファイルは <a class="reference internal" href="library/functions.html#bytes" title="bytes"><code class="xref py py-class docutils literal"><span class="pre">bytes</span></code></a> オブジェクトを読み書きします。</p>
</div>
</dd>
<dt id="term-triple-quoted-string">triple-quoted string</dt>
<dd><p class="first last">(三重クォート文字列) 3つの連続したクォート記号(”)かアポストロフィー(‘)で囲まれた文字列。通常の(一重)クォート文字列に比べて表現できる文字列に違いはありませんが、幾つかの理由で有用です。1つか2つの連続したクォート記号をエスケープ無しに書くことができますし、行継続文字(\)を使わなくても複数行にまたがることができるので、ドキュメンテーション文字列を書く時に特に便利です。</p>
</dd>
<dt id="term-type">type</dt>
<dd><p class="first last">(型) Python オブジェクトの型はオブジェクトがどのようなものかを決めます。あらゆるオブジェクトは型を持っています。オブジェクトの型は <a class="reference internal" href="library/stdtypes.html#instance.__class__" title="instance.__class__"><code class="xref py py-attr docutils literal"><span class="pre">__class__</span></code></a> 属性でアクセスしたり、<code class="docutils literal"><span class="pre">type(obj)</span></code> で取得したり出来ます。</p>
</dd>
<dt id="term-universal-newlines">universal newlines</dt>
<dd><p class="first last">テキストストリームの解釈法の一つで、以下のすべてを行末と認識します: Unix の行末規定 <code class="docutils literal"><span class="pre">'\n'</span></code>、Windows の規定 <code class="docutils literal"><span class="pre">'\r\n'</span></code>、古い Macintosh の規定 <code class="docutils literal"><span class="pre">'\r'</span></code>。利用法について詳しくは、 <span class="target" id="index-67"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-0278"><strong>PEP 278</strong></a> と <span class="target" id="index-68"></span><a class="pep reference external" href="https://www.python.org/dev/peps/pep-3116"><strong>PEP 3116</strong></a> 、さらに <a class="reference internal" href="library/stdtypes.html#bytes.splitlines" title="bytes.splitlines"><code class="xref py py-func docutils literal"><span class="pre">bytes.splitlines()</span></code></a> も参照してください。</p>
</dd>
<dt id="term-virtual-environment">virtual environment</dt>
<dd><p class="first">(仮想環境)協調的に切り離された実行環境です。これにより Python ユーザとアプリケーションは同じシステム上で動いている他の Python アプリケーションの挙動に干渉することなく Python パッケージのインストールと更新を行うことができます。</p>
<p class="last"><a class="reference internal" href="using/scripts.html#scripts-pyvenv"><span class="std std-ref">pyvenv - 仮想環境の作成</span></a> も参照してください。</p>
</dd>
<dt id="term-virtual-machine">virtual machine</dt>
<dd><p class="first last">(仮想マシン) 完全にソフトウェアにより定義されたコンピュータ。 Python の仮想マシンは、バイトコードコンパイラが出力したバイトコード (<a class="reference internal" href="#term-bytecode"><span class="xref std std-term">bytecode</span></a>) を実行します。</p>
</dd>
<dt id="term-zen-of-python">Zen of Python</dt>
<dd><p class="first last">(Pythonの悟り) Python を理解し利用する上での導きとなる、Python の設計原則と哲学をリストにしたものです。対話プロンプトで “<code class="docutils literal"><span class="pre">import</span> <span class="pre">this</span></code>” とするとこのリストを読めます。</p>
</dd>
</dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>前のトピックへ</h4>
<p class="topless"><a href="faq/installed.html"
title="前の章へ">“なぜ Python が私のコンピュータにインストールされているのですか?” FAQ</a></p>
<h4>次のトピックへ</h4>
<p class="topless"><a href="about.html"
title="次の章へ">このドキュメントについて</a></p>
<div role="note" aria-label="source link">
<h3>このページ</h3>
<ul class="this-page-menu">
<li><a href="bugs.html">バグ報告</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.5/Doc/glossary.rst"
rel="nofollow">ソースの表示
</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="総索引"
>索引</a></li>
<li class="right" >
<a href="py-modindex.html" title="Pythonモジュール索引"
>モジュール</a> |</li>
<li class="right" >
<a href="about.html" title="このドキュメントについて"
>次へ</a> |</li>
<li class="right" >
<a href="faq/installed.html" title="“なぜ Python が私のコンピュータにインストールされているのですか?” FAQ"
>前へ</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="version_switcher_placeholder">3.5.3</span>
<a href="index.html">ドキュメント</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-2017, Python Software Foundation.
<br />
Python Software Foundation は非営利団体です。
<a href="https://www.python.org/psf/donations/">寄付</a>
<br />
最終更新日時: 5月 09, 2017
<a href="bugs.html">バグを見つけたら</a>?
<br />
このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.4.9 を使って作成されました。
</div>
</body>
</html>