【入門者向け】Pythonにおけるモジュールの実装②|Python入門 #10

f:id:lib-arts:20190804170008p:plain

#1ではPythonを用いたFizzBuzzのコーディングについてまとめました。

入門者の方に読んでみていただいたところ、少し難しかったようなので、#2以降では#1で触れた基本文法をそれぞれもう少し丁寧に解説を行なっていきます。基本的には下記のPythonのドキュメントのチュートリアルなどを元にして解説していきます。

Python チュートリアル — Python 3.7.4 ドキュメント

#2ではPythonにおける四則演算・文字列について、#3ではリスト・タプル・辞書について、#4ではPythonの制御構文について、#5ではPythonの入出力に関して、#6ではPythonの関数の実装について、#7ではPythonにおけるクラスの実装について、#8ではPythonにおけるクラスの継承とオブジェクト指向について、#9ではPythonにおけるモジュールの概要の理解と簡単な実装について取り扱いました。

【入門者向け】Pythonの基礎文法① 四則演算・文字列|Python入門 #2 - lib-arts’s diary

【入門者向け】Pythonの基礎文法② リスト・タプル・辞書|Python入門 #3 - lib-arts’s diary

【入門者向け】Pythonの基礎文法③ 制御構文(if、for)|Python入門 #4 - lib-arts’s diary

【入門者向け】Pythonの入出力の実装|Python入門 #5 - lib-arts’s diary

【入門者向け】Pythonの関数の実装|Python入門 #6 - lib-arts’s diary

【入門者向け】クラスの概要とPythonにおける実装|Python入門 #7 - lib-arts’s diary

https://lib-arts.hatenablog.com/entry/entrance_python8
https://lib-arts.hatenablog.com/entry/entrance_python9
#10ではSection6.2〜6.4をベースに標準モジュールやdir()関数、パッケージについて取り扱います。

6. モジュール — Python 3.7.4 ドキュメント

以下目次になります。
1. 標準モジュール(Section6.2)
2. dir()関数(Section6.3)
3. パッケージ(Section6.4)
4. まとめ


1. 標準モジュール(Section6.2)
1節ではSection6.2で記載されている標準モジュールについて取り扱います。

f:id:lib-arts:20190905174011p:plain

まずは上記の解説を確認していきます。Pythonは標準ライブラリを保持しているとあります。記述が難しいので、ざっくりとした理解としては、#9で実装を確認したモジュールですが、自作したり外部ライブラリをインストールしたりする以外にも、Pythonに標準で入っているモジュールを用いることができるということです。この標準ライブラリについては、Pythonの言語自体に保持させていることから、基本的な機能かつよく使うだろうということが推測できます(実際によく用いる基本的な機能が多いです)。
説明が長くてもわかりにくいので、だいたいの概要がつかめたところで実際にコードを動かしてみます。

import sys

print(sys.ps1)
print(sys.ps2)

sys.ps1 = 'C> '
print(sys.ps1)

上記を実行すると下記のようになります。

f:id:lib-arts:20190905174931p:plain

Jupyterで実行したため、デフォルトのsys.ps1の出力値はチュートリアルの出力値と異なっています。
また、sysモジュールでよく用いるのはsys.pathです。

f:id:lib-arts:20190905175238p:plain

上記のようにsys.pathは環境変数のPYTHONPATHに設定したデフォルトパスにPYTHONPATHが設定されていなければ、元々のデフォルト値に設定されるとされています。


2. dir()関数(Section6.3)
2節ではdir()関数について取り扱います。

f:id:lib-arts:20190905175621p:plain

上記のようにdir()関数はモジュールが定義している名前を調べるのに使います。モジュールが実装しているメソッドや関数などを調べるにあたって便利です。

f:id:lib-arts:20190905175907p:plain

ちなみにJupyter環境で実行した場合は上記のような結果を得ることができます。
dir()関数は最初のうちは使わないと思いますが、徐々に複雑なコードを確認するようになると便利になってくると思われるので、こういう機能あったなという認識をしておけば入門にあたっては一旦十分かと思われます。


3. パッケージ(Section6.4)
3節ではSection6.4に記載されているパッケージについて取り扱います。

f:id:lib-arts:20190905180430p:plain

チュートリアルでは上記のようにパッケージ(package)について記載されています。Pythonのモジュールの名前空間を"ドット付きモジュール名"を使って構造化する手段とされています。このドット付きモジュール名を用いることで、複数モジュールからパッケージが構成されるときに、モジュール名について心配しなくてよくなります。

f:id:lib-arts:20190905180913p:plain

具体的に音声処理のパッケージを考えた際に上記のようなファイルシステムで表現したパッケージの構造案があったとします。
この際に、

import sound.effects.echo

もしくは

from sound.effects import echo

のようにすることでechoというサブモジュールをimportすることができます。
このようにドット付きモジュール名を用いることで、モジュール名の管理がしやすくなります。


4. まとめ
#10ではSection6.2〜6.4をベースに標準モジュールやdir()関数、パッケージについて取り扱いました。
#11以降ではPythonの便利なライブラリを見ていきます。#11ではNumPyについて確認します。