Pythonで他のモジュールから一意なオブジェクトにアクセスする2つの方法
これは基本的にシングルトンオブジェクトの考え方です。一度インスタンス化したオブジェクトを、別のモジュールからも参照して使い回したいケースはよくあります。Pythonでは主に2つのアプローチがあり、それぞれ以下のように実装します。
方法1:モジュールの属性として代入する
1つ目は、インポートしたモジュールに対して、そのオブジェクトを変数名付きで割り当てる方法です。例えば、myobjというオブジェクトをインスタンス化し、モジュールB内で利用したい場合は次のように書きます。
>>> import B >>> B.myobj = myobj
こうすることで、モジュールBの中ではmyobjを、他のグローバルな属性とまったく同じように扱えるようになります。シンプルで手軽な反面、モジュール間の依存が暗黙的になりやすいため、小規模なスクリプトやツール向きの手法です。
方法2:引数として明示的に渡す
もう1つの方法は、必要な箇所でそのオブジェクトを引数(パラメータ)として受け取るやり方です。例えば、モジュールBにこのオブジェクトを必要とする関数myfuncがある場合、次のように呼び出します。
>>> import B >>> B.myfunc(myobj)
この方法では、どの関数がどのオブジェクトに依存しているかがコード上で明確になるため、テストがしやすく、再利用性や保守性も高まります。規模の大きなプロジェクトでは、こちらの依存性を明示するスタイルが推奨されます。
どちらを選ぶべきか?
手軽さを優先するなら方法1、コードの明快さやテスト容易性を重視するなら方法2が適しています。状況に応じて使い分けることで、Pythonプログラム全体の設計品質を向上させることができます。
-
Pythonモジュールとは?作成方法と使い方をわかりやすく解説
モジュールは、コードを複数のファイルに分割できるPythonの便利な機能です。Pythonモジュールとは、拡張子が「.py」で終わるファイルのことです。このガイドでは、具体的な例を交えながら、Pythonモジュールの作成方法をわかりやすく解説します。Pythonモジュールの基礎知識モジュールとは、Pythonのプログラムファイルを指す言葉です。つまり、Pythonプロジェクト内にある拡張子.pyのファイルは、すべてモジュールとして扱うことができます。モジュールには関数、変数、クラスなどを含めることができ、モジュール自身が必要なライブラリをインポートすることも可能です。モジュールの3つの種類組み
-
Pythonで対数ヒストグラムを作成する方法【matplotlib活用】
Pythonのmatplotlibを使って対数(ログ)スケールのヒストグラムを作成するには、hist()メソッドの引数にlog=Trueを指定します。これにより、縦軸が対数スケールで表示され、値の範囲が大きく異なるデータも見やすく可視化できます。作成手順数値のリスト(配列)を用意します。density=Trueを指定して、正規化されたヒストグラムをプロットします。図を表示するには、show()メソッドを呼び出します。サンプルコードimport numpy as np import matplotlib.pyplot as plt plt.rcParams[figure.figsize] = [