グローバル変数について
- グローバルスコープで変数を宣言する場合は、関数の外側で宣言する。
- 関数内でグローバル変数に値を代入したい場合は、「global」を付ける必要がある。
- if __name__ == '__main__'下はグローバルスコープとなる。
- モジュール内のグローバル変数へのアクセス方法(module.global変数 = 値)
- 唯一の変数として作成される(他言語のstatic変数のイメージ)
参考にさせて頂いたページ
if __name__ == '__main__' の下にコードをダラダラと書く人、挙手しなさい
Python超入門その14〜意外と重要なスコープを理解しておこう〜
モジュール
- import出来るファイルには、モジュール、ライブラリ、パッケージが存在する。モジュールとは、Pythonのファイル(.py)の事。複数のモジュールで構成されたものはパッケージと呼ばれる。
- .pyの拡張子をもつファイル(Pythonのスクリプトファイル)はPythonのモジュールとして他のモジュールから利用することができます。Pythonでは一つのプログラム(ファイル)が一つのモジュールに相当する。
- 作成したモジュールは、import文を使って他のモジュールから再利用することができる。
- importを使ってモジュールをインポートする(import test_module # test_module.pyをインポートする例。拡張子の.pyは不要)。
- クラスを使う場合はモジュール名を先頭に付けクラス名をドットでつなげて使用する。メソッド、変数も同様に「モジュール名.メソッド名」、「モジュール名.変数名」のように記述して使用する。
- fromを使ってインポートする(from モジュール名 from クラス名)
- asを使って別名でインポートする(import モジュール名 as 別名)
参考にさせて頂いたページ
Pythonでモジュールをインポートする:import, from, as
はじめてのPython!パッケージをimportする方法をやさしく解説!
パッケージ
__init__.py
と複数のモジュール(.pyファイル)がディレクトリにまとまったもの。パッケージの中にパッケージを含めることもできます。ディレクトリ名がパッケージ名となり、親.子.モジュール
のように.で区切って指定することができます。__init__.py
にはパッケージの初期化処理を記述します。なければ空でも問題ありません。- Python3.3以降では、__init__.pyを含まないディレクトリもパッケージとしてインポートできるようになった。このようなパッケージを名前空間パッケージ(Namespace packages)という。
参考にさせて頂いたページ
あまり基礎から教えてもらうことがないpythonのimportについて。モジュール?パッケージ?クラス?