pythonを学んでいくにあたって,頭の片隅にでも置いておいた方が良い,基本的なプログラミング用語/ python 用語が複数あるので,以下にて説明いたします.
以下は,公式ドキュメント (https://docs.python.org/ja/3/glossary.html) を参照いたしました.
用語集
>>>, インタラクティブシェルにおけるデフォルトの Python プロンプトです。インタプリタでインタラクティブに実行されるコード例でよく出てきます。,,..., 次のものが考えられます:- インタラクティブシェルにおいて、インデントされ...
- virtual environment(仮想環境): 普段使うOSの環境とは切り離された実行環境です.これにより python ユーザとアプリケーションは同じシステム上で動いているほかの python アプリケーションの挙動に干渉することなく python パッケージのインストールと交信を行うことができます.例えば python に元から備わっている仮想環境の venv を立ち上げる際は,
- “py -m venv {仮想環境名}” にて仮想環境用ディレクトリ作成
- 上記で作成したディレクトリ内の Script ディレクトリに移動し,コマンドラインから,コマンドプロンプトであれば activate.bat を実行,Powershell であれば Activate.ps1 を実行,それ以外の例えば gitbash であれば “source activate” で仮想環境に入れます
- 仮想環境から出るときは,コマンドプロンプト/Powershell であれば Script 内の deactivate.bat を実行,それ以外であれば “deactivate” と打って enter で出ることができます
- virtual machine(仮想マシン): 完全にソフトウェアにより定義されたコンピュータ.python の仮想マシンは,バイトコードコンパイラが出力したバイトコードを実行します.
- object(オブジェクト): 属性や値,定義された振る舞い(メソッド)を持つすべてのデータを示します.
- stream(ストリーム): データの入出力・送受信を扱う形態を指します.
- function(関数): 呼び出し側に値を返す一連の文のことです.関数には 0 以上の実引数を渡すことができます.実態の実行時に引数を使用することができます.python の場合 def 文にて定義し,return のみ,もしくは,return の記載がなければ,その関数からは None が返されます.
- argument(実引数): 関数を呼び出す際に,関数(またはメソッド)に渡す値.
- keyword argument: argument と同じ意味です.
- parameter(仮引数): 名前付きの実態で関数やメソッドの定義において関数が受ける実引数を指定します.仮引数はオプションと必須の引数のどちらも指定でき,オプションの引数にはデフォルト値も指定できます.python において仮引数は 5 種類あります.
- 位置またはキーワード: 位置でまたはキーワード引数として渡すことができる引数を指定します.
- 位置のみ: 位置によってのみ与えられる引数を指定します.
- キーワード専用: キーワードによってのみ与えられる引数を指定します.
- 可変長位置: (他の仮引数で既に受けられた任意の一引数に加えて)任意の個数の一引数が与えられることを指定します.
- 可変長キーワード: (他の仮引数で既に受けられた任意のキーワード引数に加えて)任意の個数のキーワード引数が与えられることを指定します.
- namespace(名前空間): 変数が格納される場所です.名前空間は辞書として実装されます.名前空間にはオブジェクトやメソッドの入れ子になったものだけでなく,局所的なもの,大域的なもの,そして組み込みのものがあります.名前空間は名前の衝突を防ぐことによってモジュール性をサポートします.また,どのモジュールが関数を実装しているか明示することによって名前空間は可読性と保守性を支援します.名前の衝突を防ぐために,変数やオブジェクト名は刹那的なものでなければ,小文字1文字だけの名称は避け,名前だけで意味が分かるように定義しましょう.
- method(メソッド): クラス本体の中で定義された関数です.そのクラスのインスタンスの属性として呼び出された場合,メソッドはインスタンスオブジェクトを第一引数として受け取ります.この第一引数は慣例的に
self
としますが,実は self でなくても機能します. - module(モジュール): python コードの組織単位として働くオブジェクトです.モジュールは任意の python オブジェクトを含む名前空間を持ちます.
- class(クラス): ユーザ定義オブジェクトを作成するためのテンプレート.クラス定義は普通,そのクラスのインスタンス上の操作をするメソッドの定義を含みます.
- class variable(クラス変数): クラス上に定義され,クラスレベルで(つまり,クラスのインスタンス上ではなく)変更されることを目的としている変数です.
- attribute(属性): オブジェクトに関連付けられ,ドット表記式によって名前で参照される値.例えば,オブジェクト
obj
が属性attr
を持っているとき,その属性はobj.attr
にて参照されます. - decorator(デコレータ): 別の関数を返す関数で,通常,
@wrapper
構文で関数変換として適用される.例として,@classmethod
,@staticmethod
が挙げられます. - descriptor(デスクリプタ): あるクラス属性がデスクリプタであるとき,属性探索によって,束縛されている特別な動作が呼び出されます.
- dictionary(辞書): 任意のキーを値に対応付ける連想配列です.
- dictionary view(辞書ビュー):
dict.keys(), dict.values(), dict.items()
が返すオブジェクト.辞書の項目の動的なびゅを提供する.すなわち,辞書が変更されるとビューはそれを反映します. - docstring(ドックストリング,ドキュメンテーション文字列): クラス,関数,モジュールの最初の式である文字列リテラルです.実行時には無視されますが,コンパイラによって識別され,そのクラス,関数,モジュールの
__doc__
属性として保存されます.属性として参照できるので,オブジェクトのドキュメントを書く標準的な場所と言えます. - expression(式): 何かの値と評価されるひとまとまりの構文です.
- f-string(f文字列):
f
もしくはF
が先頭についた文字列リテラルです.文字列に変数の結果を入れ込む場合,従来の .format() や書式指定子を用いるよりも短く記述することが可能です. - garbage collection(ガベージコレクション): これ以降使われることのないメモリを開放する処理です.使うタイミングに決まりはなく,どこかで import gc にてインポートしておいて,使いたいときに使うイメージです.
- generator(ジェネレータ): generator iterator を返す関数で,普通の関数に似ていますが,
yield
式を持つ点で異なります.yield
式は,for
ループで使用できたり,next()
関数で値を 1 つずつ取り出したり出来る,値の並びを生成するのに使用されます.通常はジェネレータ関数を刺しますが,文脈によってはジェネレータイテレータを示す場合があります.意図された意味が明らかでない場合,名良化のために完全な単語を使用します. - generator iterator(ジェネレータイテレータ): generetor 関数で生成されるオブジェクトです.
yield
の旅に局所実行状態(局所変数や未処理のtry
文などを含む)を記憶して,処理は一時的に中断されます.ジェネレータイテレータが再開されると,中断した位置を取得します. - GIL; global interpretor lock(グルーバルインタープリタロック): CPython インタプリタが利用している,一度に Python のバイトコードを実行するスレッドは一つだけであることを保証する仕組みです.
- hashable(ハッシャブル,ハッシュ可能): ハッシュ可能なオブジェクトとは,生存期間中変わらないハッシュ値を持ち,他のオブジェクトと比較ができるオブジェクトです.どうちなハッシュ可能オブジェクトは必ず同じハッシュ値を持つ必要があります.python のイミュータブルな組み込みオブジェクトは,ほとんどがハッシュ可能です.
- immutable(イミュータブル,不変): 固定の値を持ったオブジェクトです.イミュータブルなオブジェクトには,数値,文字列,及びタプルなどがあり,これらのオブジェクトは値を変えることができません.別の値を記憶さえる際には,新たなオブジェクトを作成しなければなりません.イミュータブルなオブジェクトは,固定のハッシュ値が必要となる状況で重要な役割を果たします.辞書のキーがその例です.
- imoprt path(インポートパス): import するモジュールを検索する場所のリスト.import 中,このリストは通常
sys.path
から来ますが,サブパッケージの場合は親パッケージの__path__
属性からも来ます. - interactive(対話的): python には対話的インタプリタがあり,文屋敷をインタプリタのプロンプトに入力すると即座に実行されて結果を見ることができます.
- iterable(イテラブル,反復可能オブジェクト): 要素を一度に一つずつ返せるオブジェクトです.反復可能オブジェクトの例には,
list, str, tuple
といった全てのシーケンス型や,dict
やファイルオブジェクトといったいくつかの非シーケンス型が含まれます. - iterator(イテレータ): データの流れを表現するオブジェクトです.イテレータの
__next()__
メソッドを繰り返し呼び出すか,または組み込み関数next()
に渡すと,流れの中の要素を一つずつ返します.データが無くなると代わりにStopIteration
例外を創出します. - lambda(ラムダ): 無名のインライン関数で,関数が呼び出されたときに評価される一つの式を含みます.ラムダ関数を作る構文は
lambda [parameters]: expression
です. - list(リスト): python の組み込みのシーケンスです.リストという名前ですが,他の言語で言う配列(array)と同種のものです.
- list comprehension(リスト内包表記): シーケンスちゅうの全てあるいは一部の要素を処理して,その結果からなるリストを返す,コンパクトな方法です.
- mapping(マッピング): 任意のキー探索をサポートしています.例えば,
dict, collections.defaultdict, collections.OrderdDict, collections.Counter
などです. - metaclass(メタクラス): クラスのクラスです.
- mutable(ミュータブル,可変): ミュータブルなオブジェクトは,
id()
を変えることなく値を変更できます. - named tuple(名前付きタプル): タプルを継承していて,インデックスが点く要素に対し属性を使ってアクセスもできる任意の型やクラスに適用されています.その型やクラスは他の機能も持っていることもあります.
- package(パッケージ): サブモジュールや再帰的にサブパッケージを含むことのできるモジュールのことです.
- path-like object(path-like オブジェクト): ファイルシステムパスを表すような
str, bytes
などのオブジェクトを指します. - PEP: Python Enhancement Proposal.PEP は,Python コミュニティに対して情報を提供する,あるいは Python の新機能やその過程や環境について記述する設計文書です.特に PEP8 にはコーディング規約が記載されているので,大体コードがかけるようになったら,次は可読性の高いコーディングをするために,是非とも参考にしたい文書です.
- Pythonic: 他の言語の一般的な考え方で書かれたコードではなく,python の特に一般的なイディオムに従った考え方やコード片を指します.
- sequence(シーケンス): 整数インデックスによる効率的な要素アクセスを
__getitem__()
特殊メソッドを通じてサポートし,長さを返す__len__()
メソッドを定義した iterable です.組み込みシーケンス型には,list, str, tuple, bytes
などがあります. - slice(スライス): 一般にシーケンスの一部を含むオブジェクトを指します.スライスは,添え字表記
[ ]
で与えられた複数の数の間にコロンを書くか,slice()
関数を用いることで作られます. - special method(特殊メソッド): ある方に特定の操作,例えば加算をするために python から暗黙に呼び出されるメソッドを指します.この種類のメソッドは,メソッド名の最初と最後にアンダースコア 2 つがついています.
- statement(文): 文はスイート(コードの”ブロック”)に不可欠な要素です.分は指揮下キーワードから構成されるもののどちらかです.後者には
if, while, for
があります. - text encoding: ユニコード文字列をエンコードするコーデックです.
- triple-quoted string(三重クォート文字列): 3 つの連続したクォート記号(
"""
もしくは'''
)で囲まれた文字列.通常のクォート文字列に比べて表現できる文字列に違いはありませんが,1 つか 2 つの連続したくをーと記号をエスケープなしに書くことができますし,行継続文字(\)を使わなくても改行して複数行にまたがることができるので,ドキュメンテーション文字列を書くときに特に便利です. - type(型): python オブジェクトの型はオブジェクトがどのようなものかを決めます.あらゆるオブジェクトは型を持っています.
- type alias(型エイリアス): 型の別名で,型を識別子に代入して作成します.
- type hint(型ヒント): 変数,クラス属性,関数のパラメータや返り値の期待される方を指定する annotation です.型ヒントは必須ではなく python では強制ではありませんが,静的型解析ツールにとって有用であり,IDE のコード補間とリファクタリングの手助けになります.
- refactering(リファクタリング): プログラミングにおいて,プログラムとしての機能は変えずにソースコードを整理することを指します.一般には,リファクタリングを行っているときには機能追加などは行われないが,コードの保守性が向上するため,後の修正や機能拡充が行いやすくなります.
コメント