用語集—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/glossary
移動先:案内検索

用語集

>>>

インタラクティブシェルのデフォルトのPythonプロンプト。 インタプリタでインタラクティブに実行できるコード例でよく見られます。

...

インデントされたコードブロックのコードを入力するとき、一致する左右の区切り文字(括弧、角括弧、中括弧、または三重引用符)のペア内にあるとき、またはデコレータを指定した後の、インタラクティブシェルのデフォルトのPythonプロンプト。

2to3

ソースを解析し、解析ツリーをトラバースすることで検出できるほとんどの非互換性を処理することにより、Python2.xコードをPython3.xコードに変換しようとするツール。

2to3は、 lib2to3 として標準ライブラリで利用できます。 スタンドアロンのエントリポイントは、Tools/scripts/2to3として提供されます。 2to3-自動化されたPython2から3へのコード変換を参照してください。

抽象基本クラス

抽象基本クラスは、 hasattr()のような他の手法が不器用または微妙に間違っている場合(たとえば、マジックメソッド)にインターフェイスを定義する方法を提供することにより、ダックタイピングを補完します。 ])。 ABCは仮想サブクラスを導入します。これは、クラスから継承しないが、 isinstance()および issubclass()によって認識されるクラスです。 abc モジュールのドキュメントを参照してください。 Pythonには、データ構造( collections モジュール内)、数値( numbers モジュール内)、およびストリーム( io 内)用の多くの組み込みABCが付属しています。モジュール)。 abc モジュールを使用して、独自のABCを作成できます。

口論

関数を呼び出すときに関数(またはメソッド)に渡される値。 引数には2つのタイプがあります。

  • キーワード引数:識別子が前に付いた引数(例: name=)関数呼び出しで、または**が前に付いたディクショナリの値として渡されます。 たとえば、35はどちらも、 complex()への次の呼び出しのキーワード引数です。

    complex(real=3, imag=5)
    complex(**{'real': 3, 'imag': 5})
  • 位置引数:キーワード引数ではない引数。 位置引数は、引数リストの先頭に表示することも、 iterable の前に*を付ける要素として渡すこともできます。 たとえば、35はどちらも、次の呼び出しの位置引数です。

    complex(3, 5)
    complex(*(3, 5))

引数は、関数本体の名前付きローカル変数に割り当てられます。 この割り当てを管理するルールについては、呼び出しセクションを参照してください。 構文的には、任意の式を使用して引数を表すことができます。 評価された値はローカル変数に割り当てられます。

パラメータの用語集エントリおよび引数とパラメータの違いに関するFAQの質問も参照してください。

属性

点線の式を使用して名前で参照されるオブジェクトに関連付けられた値。 たとえば、オブジェクト o に属性 a がある場合、 oa として参照されます。

BDFL

人生のための慈悲深い独裁者、別名 Guido van Rossum 、Pythonの作成者。

バイトのようなオブジェクト

strbytearraymemoryview など、バッファプロトコルをサポートするオブジェクト。 バイトのようなオブジェクトは、圧縮、バイナリファイルへの保存、ソケットを介した送信など、バイナリデータを期待するさまざまな操作に使用できます。 一部の操作では、バイナリデータを変更可能にする必要があります。その場合、すべてのバイトのようなオブジェクトを適用できるわけではありません。

バイトコード

Pythonソースコードは、CPythonインタープリターでのPythonプログラムの内部表現であるバイトコードにコンパイルされます。 バイトコードは.pycおよび.pyoファイルにもキャッシュされるため、同じファイルの2回目の実行が高速になります(ソースからバイトコードへの再コンパイルを回避できます)。 この「中間言語」は、各バイトコードに対応するマシンコードを実行する仮想マシン上で実行されると言われています。 バイトコードは、異なるPython仮想マシン間で機能したり、Pythonリリース間で安定したりすることは期待されていないことに注意してください。

バイトコード命令のリストは、 disモジュールのドキュメントにあります。

クラス

ユーザー定義オブジェクトを作成するためのテンプレート。 クラス定義には通常、クラスのインスタンスを操作するメソッド定義が含まれています。

クラシッククラス

オブジェクトから継承しないクラス。 新しいスタイルのクラスを参照してください。 クラシッククラスはPython3で削除されました。

強制

同じタイプの2つの引数を含む操作中に、あるタイプのインスタンスを別のタイプに暗黙的に変換します。 たとえば、int(3.15)は浮動小数点数を整数3に変換しますが、3+4.5では、各引数は異なる型(1つのint、1つのfloat)であり、両方追加する前に同じタイプに変換する必要があります。そうしないと、TypeErrorが発生します。 2つのオペランド間の強制は、coerce組み込み関数を使用して実行できます。 したがって、3+4.5は、operator.add(*coerce(3, 4.5))を呼び出すことと同等であり、結果はoperator.add(3.0, 4.5)になります。 強制がなければ、互換性のある型のすべての引数でさえ、プログラマーが同じ値に正規化する必要があります。たとえば、3+4.5だけでなく、float(3)+4.5のようになります。

複素数

すべての数が実数部と虚数部の合計として表される、おなじみの実数システムの拡張。 虚数は虚数単位(-1の平方根)の実数倍であり、数学ではi、工学ではjと書かれることがよくあります。 Pythonには、この後者の表記法で記述された複素数のサポートが組み込まれています。 虚数部は、jサフィックスで記述されます(例:3+1j)。 math モジュールに相当する複雑なものにアクセスするには、 cmath を使用します。 複素数の使用は、かなり高度な数学的機能です。 それらの必要性に気付いていない場合は、それらを安全に無視できることはほぼ確実です。

コンテキストマネージャー

__enter__()および__exit__()メソッドを定義することにより、 with ステートメントに表示される環境を制御するオブジェクト。 PEP 343 を参照してください。

CPython

python.org で配布されているPythonプログラミング言語の正規の実装。 「CPython」という用語は、この実装をJythonやIronPythonなどの他の実装と区別するために必要な場合に使用されます。

デコレータ

別の関数を返す関数。通常、@wrapper構文を使用した関数変換として適用されます。 デコレータの一般的な例は、 classmethod()および staticmethod()です。

デコレータ構文は単なるシンタックスシュガーであり、次の2つの関数定義は意味的に同等です。

def f(...):
    ...
f = staticmethod(f)

@staticmethod
def f(...):
    ...

同じ概念がクラスにも存在しますが、そこではあまり一般的に使用されていません。 デコレータの詳細については、関数定義およびクラス定義のドキュメントを参照してください。

ディスクリプタ

メソッド__get__()__set__()、または__delete__()を定義する new-style オブジェクト。 クラス属性が記述子である場合、その特別なバインディング動作は属性ルックアップ時にトリガーされます。 通常、 ab を使用して属性を取得、設定、または削除すると、 a のクラスディクショナリで b という名前のオブジェクトが検索されますが、 b [ X153X]は記述子であり、それぞれの記述子メソッドが呼び出されます。 記述子を理解することは、Pythonを深く理解するための鍵です。これは、記述子が関数、メソッド、プロパティ、クラスメソッド、静的メソッド、スーパークラスへの参照などの多くの機能の基礎であるためです。

記述子のメソッドの詳細については、記述子の実装を参照してください。

辞書

任意のキーが値にマップされる連想配列。 キーは、__hash__()および__eq__()メソッドを持つ任意のオブジェクトにすることができます。 Perlでハッシュと呼ばれます。

辞書ビュー

dict.viewkeys()dict.viewvalues()、および dict.viewitems()から返されるオブジェクトは、ディクショナリビューと呼ばれます。 これらは、ディクショナリのエントリに関する動的なビューを提供します。つまり、ディクショナリが変更されると、ビューはこれらの変更を反映します。 辞書ビューを強制的に完全なリストにするには、list(dictview)を使用します。 ディクショナリビューオブジェクトを参照してください。

docstring

クラス、関数、またはモジュールの最初の式として表示される文字列リテラル。 スイートの実行時には無視されますが、コンパイラによって認識され、囲んでいるクラス、関数、またはモジュールの__doc__属性に配置されます。 イントロスペクションを介して利用できるため、オブジェクトを文書化するための標準的な場所です。

ダックタイピング

オブジェクトのタイプを調べて、適切なインターフェイスがあるかどうかを判断しないプログラミングスタイル。 代わりに、メソッドまたは属性は単に呼び出されるか使用されます(「アヒルのように見え、アヒルのようにクワクワクする場合は、アヒルである必要があります。」)特定のタイプではなくインターフェイスを強調することにより、適切に設計されたコードは、多形置換。 ダックタイピングは、 type()または isinstance()を使用したテストを回避します。 (ただし、ダックタイピングは抽象基本クラスで補完できることに注意してください。)代わりに、通常は hasattr()テストまたは EAFP プログラミングを使用します。

EAFP

許可よりも許しを求める方が簡単です。 この一般的なPythonコーディングスタイルは、有効なキーまたは属性の存在を前提としており、その想定が誤りであることが判明した場合は例外をキャッチします。 このクリーンで高速なスタイルは、 try および except ステートメントが多数存在することを特徴としています。 この手法は、Cなどの他の多くの言語に共通する LBYL スタイルとは対照的です。

表現

ある値に評価できる構文の一部。 言い換えると、式は、リテラル、名前、属性アクセス、演算子、関数呼び出しなど、すべて値を返す式要素の累積です。 他の多くの言語とは対照的に、すべての言語構造が式であるとは限りません。 printif など、式として使用できないステートメントもあります。 割り当てもステートメントであり、式ではありません。

拡張モジュール

PythonのCAPIを使用してコアおよびユーザーコードと対話する、CまたはC ++で記述されたモジュール。

ファイルオブジェクト

ファイル指向のAPI(read()write()などのメソッドを使用)を基盤となるリソースに公開するオブジェクト。 ファイルオブジェクトは、作成方法に応じて、実際のディスク上のファイル、または別の種類のストレージや通信デバイス(たとえば、標準の入出力、メモリ内のバッファ、ソケット、パイプなど)へのアクセスを仲介できます。 。 ファイルオブジェクトは、ファイルのようなオブジェクトまたはストリームとも呼ばれます。

実際には、ファイルオブジェクトには、生のバイナリファイル、バッファリングされたバイナリファイル、テキストファイルの3つのカテゴリがあります。 それらのインターフェースは io モジュールで定義されています。 ファイルオブジェクトを作成する標準的な方法は、 open()関数を使用することです。

ファイルのようなオブジェクト

ファイルオブジェクトの同義語。

ファインダ

モジュールのローダーを見つけようとするオブジェクト。 find_module()という名前のメソッドを実装する必要があります。 詳細については、 PEP 302 を参照してください。

フロア分割

最も近い整数に切り捨てる数学的な除算。 床分割演算子は//です。 たとえば、式11 // 4は、floatの真の除算によって返される2.75とは対照的に、2と評価されます。 (-11) // 4-3であることに注意してください。これは、-2.75下向きに丸められているためです。 PEP 238 を参照してください。

関数

呼び出し元に何らかの値を返す一連のステートメント。 また、本体の実行に使用できる0個以上の引数を渡すこともできます。 パラメーターメソッド、および関数定義セクションも参照してください。

__将来__

プログラマーが現在のインタープリターと互換性のない新しい言語機能を有効にするために使用できる疑似モジュール。 たとえば、式11/4は現在2と評価されます。 それが実行されるモジュールが実行することによって真の除算を有効にした場合:

from __future__ import division

11/42.75と評価されます。 __ future __ モジュールをインポートしてその変数を評価することにより、新しい機能が言語に最初に追加された時期と、それがデフォルトになる時期を確認できます。

>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
ガベージコレクション

使用されなくなったときにメモリを解放するプロセス。 Pythonは、参照カウントと、参照サイクルを検出して中断できる循環ガベージコレクターを介してガベージコレクションを実行します。

ジェネレーター

イテレータを返す関数。 forループで使用できる一連の値を生成するための yield ステートメントが含まれていること、または next()で一度に1つずつ取得できることを除けば、通常の関数のように見えます。関数。 各 yield は、ロケーションの実行状態(ローカル変数と保留中のtryステートメントを含む)を記憶して、処理を一時的に中断します。 ジェネレーターが再開すると、中断したところから再開します(呼び出しごとに新しく開始する関数とは対照的です)。

ジェネレータ式

イテレータを返す式。 これは、通常の式の後に、ループ変数、範囲、およびオプションの if 式を定義する for 式が続くように見えます。 結合された式は、囲んでいる関数の値を生成します。

>>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, ... 81
285
GIL

グローバルインタプリタロックを参照してください。

グローバルインタプリタロック

CPython インタープリターが使用するメカニズムで、一度に1つのスレッドのみがPython バイトコードを実行することを保証します。 これにより、オブジェクトモデル( dict などの重要な組み込み型を含む)が同時アクセスに対して暗黙的に安全になるため、CPythonの実装が簡素化されます。 インタプリタ全体をロックすると、マルチプロセッサマシンによって提供される並列処理の多くが犠牲になりますが、インタプリタをマルチスレッド化するのが容易になります。

ただし、一部の拡張モジュールは、標準またはサードパーティのいずれかで、圧縮やハッシュなどの計算集約型タスクを実行するときにGILを解放するように設計されています。 また、I / Oを実行すると、GILは常に解放されます。

「フリースレッド」インタープリター(共有データをより細かい粒度でロックするインタープリター)を作成するためのこれまでの取り組みは、一般的なシングルプロセッサーの場合にパフォーマンスが低下したため、成功していません。 このパフォーマンスの問題を克服すると、実装がはるかに複雑になり、保守にコストがかかると考えられています。

ハッシュ可能

オブジェクトは、その存続期間中に変更されないハッシュ値を持ち(__hash__()メソッドが必要)、他のオブジェクトと比較できる場合( [が必要)、 hashable です。 X179X]または__cmp__()メソッド)。 等しいと比較するハッシュ可能なオブジェクトは、同じハッシュ値を持っている必要があります。

これらのデータ構造は内部でハッシュ値を使用するため、ハッシュ可能性により、オブジェクトは辞書キーおよびセットメンバーとして使用可能になります。

Pythonの不変の組み込みオブジェクトはすべてハッシュ可能ですが、変更可能なコンテナー(リストや辞書など)はハッシュ可能ではありません。 ユーザー定義クラスのインスタンスであるオブジェクトは、デフォルトでハッシュ可能です。 それらはすべて等しくなく(それら自体を除いて)比較され、それらのハッシュ値はそれらの id()から導出されます。

アイドル

Pythonの統合開発環境。 IDLEは、Pythonの標準ディストリビューションに付属する基本的なエディターおよびインタープリター環境です。

不変

固定値のオブジェクト。 不変オブジェクトには、数字、文字列、タプルが含まれます。 このようなオブジェクトは変更できません。 別の値を保存する必要がある場合は、新しいオブジェクトを作成する必要があります。 これらは、辞書のキーなど、一定のハッシュ値が必要な場所で重要な役割を果たします。

整数除算

余りを破棄する数学除算。 たとえば、式11/4は、float除算によって返される2.75とは対照的に、現在2と評価されます。 フロア分割とも呼ばれます。 2つの整数を除算すると、結果は常に別の整数になります(床関数が適用されます)。 ただし、オペランドの1つが別の数値型( float など)である場合、結果は共通型に強制変換されます(強制変換を参照)。 たとえば、整数を浮動小数点数で除算すると、浮動小数点値になり、場合によっては小数部になります。 /演算子の代わりに//演算子を使用すると、整数の除算を強制できます。 __ future __ も参照してください。

インポート

あるモジュールのPythonコードを別のモジュールのPythonコードで利用できるようにするプロセス。

インポーター

モジュールの検索とロードの両方を行うオブジェクト。 ファインダーオブジェクトとローダーオブジェクトの両方。

相互の作用

Pythonにはインタラクティブなインタープリターがあります。つまり、インタープリタープロンプトでステートメントと式を入力し、すぐに実行して結果を確認できます。 引数なしでpythonを起動するだけです(おそらくコンピュータのメインメニューから選択することによって)。 これは、新しいアイデアをテストしたり、モジュールやパッケージを検査したりするための非常に強力な方法です(help(x)を思い出してください)。

通訳

Pythonは、コンパイルされた言語とは対照的に、インタープリター型言語ですが、バイトコードコンパイラーが存在するため、区別があいまいになる可能性があります。 これは、実行可能ファイルを明示的に作成せずにソースファイルを直接実行できることを意味します。 インタプリタ言語は通常、コンパイルされた言語よりも開発/デバッグサイクルが短くなりますが、プログラムの実行速度も一般的に遅くなります。 インタラクティブも参照してください。

反復可能

メンバーを一度に1つずつ返すことができるオブジェクト。 反復可能オブジェクトの例には、すべてのシーケンスタイプ(liststrタプルなど)と、 dict や[ X154X]ファイルおよび__iter__()または__getitem__()メソッドで定義したクラスのオブジェクト。 Iterablesは、 for ループや、シーケンスが必要な他の多くの場所( zip()map()、…)で使用できます。 反復可能オブジェクトが引数として組み込み関数 iter()に渡されると、オブジェクトのイテレーターを返します。 このイテレータは、値のセットを1回渡すのに適しています。 イテレータを使用する場合、通常、 iter()を呼び出したり、イテレータオブジェクトを自分で処理したりする必要はありません。 forステートメントはそれを自動的に行い、ループの間イテレーターを保持するための一時的な名前のない変数を作成します。 イテレータシーケンス、およびジェネレータも参照してください。

イテレータ

データのストリームを表すオブジェクト。 イテレータの next()メソッドを繰り返し呼び出すと、ストリーム内の連続するアイテムが返されます。 使用可能なデータがなくなると、代わりにStopIteration例外が発生します。 この時点で、イテレータオブジェクトは使い果たされ、その next()メソッドをさらに呼び出すと、StopIterationが再び発生します。 イテレータには、イテレータオブジェクト自体を返す__iter__()メソッドが必要です。これにより、すべてのイテレータもイテレータであり、他のイテレータが受け入れられるほとんどの場所で使用できます。 注目すべき例外の1つは、複数の反復パスを試行するコードです。 コンテナオブジェクト(listなど)は、 iter()関数に渡すか、 for ループで使用するたびに、新しいイテレータを生成します。 イテレータを使用してこれを試行すると、前の反復パスで使用されたものと同じ使い果たされたイテレータオブジェクトが返され、空のコンテナのように見えます。

詳細については、イテレータタイプを参照してください。

キー機能

キー関数または照合関数は、並べ替えまたは順序付けに使用される値を返す呼び出し可能関数です。 たとえば、 locale.strxfrm()は、ロケール固有のソート規則を認識するソートキーを生成するために使用されます。

Pythonの多くのツールは、要素の順序付けやグループ化の方法を制御するための主要な関数を受け入れます。 それらには、 min()max()sorted()list.sort()heapq.nsmallest()が含まれます。 、 heapq.nlargest()、および itertools.groupby()

キー関数を作成する方法はいくつかあります。 例えば。 str.lower()メソッドは、大文字と小文字を区別しないソートのキー関数として機能します。 あるいは、アドホックキー関数は、lambda r: (r[0], r[2])などのラムダ式から構築できます。 また、 operator モジュールは、 attrgetter()itemgetter()、および methodcaller()の3つの主要な関数コンストラクターを提供します。 キー機能を作成して使用する方法の例については、 Sorting HOW TO を参照してください。

キーワード引数

引数を参照してください。

ラムダ

関数が呼び出されたときに評価される単一ので構成される匿名のインライン関数。 ラムダ関数を作成するための構文はlambda [parameters]: expressionです。

LBYL

石橋を叩いて渡る。 このコーディングスタイルは、呼び出しまたはルックアップを行う前に、前提条件を明示的にテストします。 このスタイルは、 EAFP アプローチとは対照的であり、多くの if ステートメントが存在することを特徴としています。

マルチスレッド環境では、LBYLアプローチは、「見る」と「跳躍する」の間に競合状態を引き起こすリスクがあります。 たとえば、別のスレッドがテスト後、ルックアップの前にマッピングからキーを削除すると、コードif key in mapping: return mapping[key]が失敗する可能性があります。 この問題は、ロックを使用するか、EAFPアプローチを使用することで解決できます。

リスト

組み込みのPython シーケンス。 その名前にもかかわらず、要素へのアクセスはO(1)であるため、リンクリストよりも他の言語の配列に似ています。

リスト内包

シーケンス内の要素のすべてまたは一部を処理し、結果を含むリストを返すコンパクトな方法。 result = ["0x%02x" % x for x in range(256) if x % 2 == 0]は、0から255の範囲の偶数の16進数(0x ..)を含む文字列のリストを生成します。 if 句はオプションです。 省略した場合、range(256)のすべての要素が処理されます。

ローダ

モジュールをロードするオブジェクト。 load_module()という名前のメソッドを定義する必要があります。 ローダーは通常、ファインダーによって返されます。 詳細については、 PEP 302 を参照してください。

魔法の方法

特殊メソッドの非公式の同義語。

マッピング

任意のキールックアップをサポートし、 Mapping または MutableMapping abstract base classes で指定されたメソッドを実装するコンテナオブジェクト。 例としては、 dictcollections.defaultdictcollections.OrderedDictcollections.Counter などがあります。

メタクラス

クラスのクラス。 クラス定義は、クラス名、クラスディクショナリ、および基本クラスのリストを作成します。 メタクラスは、これら3つの引数を取り、クラスを作成する責任があります。 ほとんどのオブジェクト指向プログラミング言語は、デフォルトの実装を提供します。 Pythonを特別なものにしているのは、カスタムメタクラスを作成できることです。 ほとんどのユーザーはこのツールを必要としませんが、必要が生じた場合、メタクラスは強力でエレガントなソリューションを提供できます。 これらは、属性アクセスのログ記録、スレッドセーフの追加、オブジェクト作成の追跡、シングルトンの実装、およびその他の多くのタスクに使用されてきました。

詳細については、クラス作成のカスタマイズを参照してください。

方法

クラス本体内で定義される関数。 そのクラスのインスタンスの属性として呼び出された場合、メソッドはインスタンスオブジェクトを最初の引数(通常はselfと呼ばれます)として取得します。 関数およびネストされたスコープを参照してください。

メソッド解決順序

メソッド解決順序は、ルックアップ中に基本クラスでメンバーが検索される順序です。 2.3リリース以降にPythonインタープリターで使用されているアルゴリズムの詳細については、 Python2.3メソッド解決順序を参照してください。

モジュール

Pythonコードの組織単位として機能するオブジェクト。 モジュールには、任意のPythonオブジェクトを含む名前空間があります。 モジュールは、 importing のプロセスによってPythonにロードされます。

パッケージも参照してください。

MRO

メソッド解決順序を参照してください。

可変

可変オブジェクトは値を変更できますが、 id()は保持します。 不変も参照してください。

名前付きタプル

名前付き属性を使用してインデックス可能な要素にもアクセスできるタプルのようなクラス(たとえば、 time.localtime()は、 year にインデックスを使用してアクセスできるタプルのようなオブジェクトを返しますt[0]など、またはt.tm_yearなどの名前付き属性を使用します。

名前付きタプルは、 time.struct_time などの組み込み型にすることも、通常のクラス定義を使用して作成することもできます。 フル機能の名前付きタプルは、ファクトリ関数 collections.namedtuple()を使用して作成することもできます。 後者のアプローチは、Employee(name='jones', title='programmer')のような自己文書化表現などの追加機能を自動的に提供します。

名前空間

変数が格納される場所。 名前空間は辞書として実装されます。 オブジェクト(メソッド内)には、ローカル、グローバル、および組み込みの名前空間と、ネストされた名前空間があります。 名前空間は、名前の競合を防ぐことでモジュール性をサポートします。 たとえば、関数__builtin__.open()os.open()は、名前空間によって区別されます。 名前空間は、どのモジュールが関数を実装するかを明確にすることで、読みやすさと保守性も向上させます。 たとえば、 random.seed()または itertools.izip()と書くと、これらの関数が random および itertools [によって実装されていることが明確になります。 X166X]モジュール、それぞれ。

ネストされたスコープ

囲んでいる定義内の変数を参照する機能。 たとえば、別の関数内で定義された関数は、外部関数の変数を参照できます。 ネストされたスコープは参照に対してのみ機能し、常に最も内側のスコープに書き込む割り当てに対しては機能しないことに注意してください。 対照的に、ローカル変数は最も内側のスコープで読み取りと書き込みの両方を行います。 同様に、グローバル変数はグローバル名前空間に対して読み取りと書き込みを行います。

新しいスタイルのクラス

オブジェクトから継承するクラス。 これには、listdict などのすべての組み込み型が含まれます。 __slots__、記述子、プロパティ、__getattribute__()などのPythonの新しい、用途の広い機能を使用できるのは、新しいスタイルのクラスだけです。

詳細については、新しいスタイルおよびクラシッククラスを参照してください。

物体

状態(属性または値)および定義された動作(メソッド)を持つデータ。 また、新しいスタイルのクラスの究極の基本クラス。

パッケージ

サブモジュールまたは再帰的にサブパッケージを含めることができるPython モジュール。 技術的には、パッケージは__path__属性を持つPythonモジュールです。

パラメータ

関数が受け入れることができる引数(または場合によっては引数)を指定する関数(またはメソッド)定義内の名前付きエンティティ。 パラメータには次の4つのタイプがあります。

  • position-or-keywordpositionally または keyword引数として渡すことができる引数を指定します。 これはデフォルトの種類のパラメーターです。たとえば、次の foo および bar です。

    def func(foo, bar=None): ...
  • position-only :位置によってのみ指定できる引数を指定します。 Pythonには、位置のみのパラメーターを定義するための構文がありません。 ただし、一部の組み込み関数には位置のみのパラメーターがあります(例: abs())。

  • var-positional :位置引数の任意のシーケンスを提供できることを指定します(他のパラメーターによって既に受け入れられている位置引数に加えて)。 このようなパラメーターは、パラメーター名の前に*を付けることで定義できます。たとえば、次の場合は args です。

    def func(*args, **kwargs): ...
  • var-keyword :任意の数のキーワード引数を指定できることを指定します(他のパラメーターで既に受け入れられているキーワード引数に加えて)。 このようなパラメーターは、パラメーター名の前に**を付けることで定義できます。たとえば、上記の例では kwargs です。

パラメータでは、オプションの引数と必須の引数の両方、および一部のオプションの引数のデフォルト値を指定できます。

引数の用語集エントリ、引数とパラメータの違いに関するFAQの質問、および関数定義セクションも参照してください。

PEP

Python拡張提案。 PEPは、Pythonコミュニティに情報を提供したり、Pythonまたはそのプロセスや環境の新機能を説明したりする設計ドキュメントです。 PEPは、提案された機能の簡潔な技術仕様と理論的根拠を提供する必要があります。

PEPは、主要な新機能を提案し、問題に関するコミュニティの意見を収集し、Pythonに取り入れられた設計上の決定を文書化するための主要なメカニズムとなることを目的としています。 PEPの作成者は、コミュニティ内でコンセンサスを構築し、反対意見を文書化する責任があります。

PEP 1 を参照してください。

位置引数

引数を参照してください。

Python 3000

Python 3.xリリースラインのニックネーム(バージョン3のリリースが遠い将来のものであったときに造られました。)これは「Py3k」とも略されます。

Pythonic

他の言語に共通の概念を使用してコードを実装するのではなく、Python言語の最も一般的なイディオムに厳密に従ったアイデアまたはコード。 たとえば、Pythonの一般的なイディオムは、 for ステートメントを使用してイテラブルのすべての要素をループすることです。 他の多くの言語にはこのタイプの構造がないため、Pythonに慣れていない人は、代わりに数値カウンターを使用することがあります。

for i in range(len(food)):
    print food[i]

よりクリーンなPythonicメソッドとは対照的に:

for piece in food:
    print piece
参照カウント

オブジェクトへの参照の数。 オブジェクトの参照カウントがゼロに低下すると、割り当てが解除されます。 参照カウントは通常、Pythonコードには表示されませんが、 CPython 実装の重要な要素です。 sys モジュールは、プログラマーが特定のオブジェクトの参照カウントを返すために呼び出すことができる getrefcount()関数を定義します。

__slots__

新しいスタイルのクラス内の宣言。インスタンス属性のスペースを事前に宣言し、インスタンスディクショナリを削除することでメモリを節約します。 この手法は一般的ですが、正しく理解するのはやや難しいため、メモリが重要なアプリケーションに多数のインスタンスが存在するまれなケースに最適です。

順序

iterable は、__getitem__()特殊メソッドを介して整数インデックスを使用した効率的な要素アクセスをサポートし、シーケンスの長さを返す len()メソッドを定義します。 いくつかの組み込みシーケンスタイプは、liststrタプル、および unicode です。 dict__getitem__()__len__()もサポートしますが、ルックアップは整数ではなく任意の不変キーを使用するため、シーケンスではなくマッピングと見なされることに注意してください。

スライス

通常、シーケンスの一部を含むオブジェクト。 スライスは、variable_name[1:3:5]のように、複数が指定されている場合、数字の間にコロンを含む添え字表記[]を使用して作成されます。 角かっこ(添え字)表記は、内部でスライスオブジェクトを使用します(または、古いバージョンでは、__getslice__()および__setslice__())。

特別な方法

型に対して特定の操作(加算など)を実行するためにPythonによって暗黙的に呼び出されるメソッド。 このようなメソッドの名前は、二重下線で始まり、二重下線で終わります。 特別なメソッドは、特別なメソッド名に記載されています。

声明

ステートメントはスイート(コードの「ブロック」)の一部です。 ステートメントは、、または ifwhilefor などのキーワードを持ついくつかの構成の1つです。

構造体シーケンス

名前付き要素を持つタプル。 構造体シーケンスは、要素がインデックスまたは属性としてアクセスできるという点で、名前付きタプルと同様のインターフェイスを公開します。 ただし、 _make()_asdict()のような名前付きタプルメソッドはありません。 構造体シーケンスの例には、 sys.float_info および os.stat()の戻り値が含まれます。

トリプルクォート文字列

引用符( ")またはアポストロフィ( ')の3つのインスタンスでバインドされた文字列。 一重引用符で囲まれた文字列では使用できない機能は提供されませんが、いくつかの理由で役立ちます。 文字列内にエスケープされていない一重引用符と二重引用符を含めることができ、継続文字を使用せずに複数行にまたがることができるため、docstringを作成するときに特に便利です。

タイプ

Pythonオブジェクトのタイプによって、オブジェクトの種類が決まります。 すべてのオブジェクトにはタイプがあります。 オブジェクトのタイプは、その __ class __ 属性としてアクセス可能であるか、type(obj)で取得できます。

ユニバーサル改行

次のすべてが行の終わりとして認識されるテキストストリームを解釈する方法:Unixの行末規則'\n'、Windowsの規則'\r\n'、および古いMacintoshの規則[ X211X] 。 追加の使用法については、 PEP 278 および PEP 3116 、および str.splitlines()を参照してください。

仮想環境

同じシステムで実行されている他のPythonアプリケーションの動作に干渉することなく、PythonユーザーとアプリケーションがPython配布パッケージをインストールおよびアップグレードできるようにする協調的に分離されたランタイム環境。

仮想マシン

完全にソフトウェアで定義されたコンピューター。 Pythonの仮想マシンは、バイトコードコンパイラによって発行された bytecode を実行します。

Pythonの禅

言語の理解と使用に役立つPythonの設計原則と哲学のリスト。 リストは、インタラクティブプロンプトで「import this」と入力すると見つかります。