0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonのモジュールとパッケージは、コードを整理して再利用しやすくするための基本的な機能です。これらを使うことで、コードの管理がしやすくなり、大規模なプログラムでも効率的に開発できます。

モジュール (Modules)

モジュールは、Pythonファイル(*.py)のことです。モジュールには関数、クラス、変数などを定義しておくことができ、他のファイルからインポートして利用できます。

モジュールの作成
my_module.pyという名前のモジュールを作成し、以下のコードを記述します。

# my_module.py

def greet(name):
    return f"Hello, {name}!"

def add(a, b):
    return a + b

モジュールのインポートと利用
別のファイル(例:main.py)でこのモジュールをインポートして利用します。

# main.py

import my_module

# モジュール内の関数を呼び出す
print(my_module.greet("Alice"))
print("3 + 5 =", my_module.add(3, 5))

説明: my_moduleをインポートし、greet関数とadd関数を呼び出しています。

パッケージ (Packages)

パッケージは、モジュールをまとめたディレクトリ(フォルダ)のことです。パッケージには、通常、init.pyというファイルが含まれており、パッケージ全体の初期化に使われます(Python 3.3以降では省略可能)。

パッケージの作成
以下のようなディレクトリ構造を作成します。

mypackage/
    __init__.py
    module1.py
    module2.py
  • init.py: パッケージを初期化するためのファイル。内容は空でも構いません。
  • module1.py: パッケージ内のモジュール。
  • module2.py: パッケージ内の別のモジュール。

mypackage/module1.pyに次のコードを書きます。

# mypackage/module1.py

def greet(name):
    return f"Hello from module1, {name}!"

mypackage/module2.pyに次のコードを書きます。

# mypackage/module2.py

def farewell(name):
    return f"Goodbye from module2, {name}!"

パッケージのインポートと利用
別のファイル(例:main.py)でこのパッケージをインポートして利用します。

# main.py

# パッケージ内のモジュールをインポート
from mypackage import module1, module2

# モジュール内の関数を呼び出す
print(module1.greet("Alice"))
print(module2.farewell("Bob"))

説明: mypackageパッケージからmodule1module2をインポートし、それぞれの関数を呼び出しています。

__init__.pyの役割

  • init.pyファイルは、パッケージ全体の初期化に使われます。以下はその役割の一例です。

サブモジュールのインポート: パッケージ内の特定のモジュールをインポートするために使われます。

# mypackage/__init__.py

from .module1 import greet
from .module2 import farewell

このように__init__.pyでインポートすると、パッケージをインポートしただけでサブモジュールもインポートされます。

# main.py

# パッケージ全体をインポート
import mypackage

print(mypackage.greet("Alice"))
print(mypackage.farewell("Bob"))

実際の例

Python標準ライブラリも多くのモジュールとパッケージで構成されています。たとえば、mathモジュールを使って数学関数を利用できます。

import math

print("Square root of 16 is", math.sqrt(16))
print("Value of pi is", math.pi)

まとめ

  • モジュール: Pythonファイルのことで、関数やクラスを他のファイルからインポートして利用できます。
  • パッケージ: モジュールをまとめたディレクトリで、init.pyを含むことでパッケージとして認識されます。

参考) 東京工業大学情報理工学院 Python早見表

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?