Pythonのライブラリとモジュールとクラスとメソッドの関係

ライブラリとモジュールと クラスとメソッド

Pythonの日時情報の操作を習っているとき
「datetimeクラスのクラスメソッドであるnow()メソッドを・・・」とか
「datetimeモジュールに含まれるtimedeltaクラスを・・・」とかできて、意味が分からなくなりました。

りある

いや、まじで。

目次

ライブラリとモジュールとクラスとメソッド

ロボ君

Pythonのライブラリ、モジュール、クラス、メソッドは、それぞれ以下の関係にありマス。

ライブラリは、複数のモジュールをまとめたもの。
モジュールは、Pythonのファイル(.py)のこと。関数やクラスが定義されている。
クラスは、オブジェクトの型のこと。メソッドをまとめたもの。
メソッドは、クラス内に定義された関数のこと。

つまり、ライブラリはモジュールの集合であり、モジュールはクラスとメソッドの集合ですね。

ライブラリ(Library)

ライブラリは、Pythonの標準ライブラリとサードパーティライブラリの2種類があります。

標準ライブラリは、Pythonに標準で含まれているライブラリ。
サードパーティライブラリは、個人や企業が開発したライブラリ。

標準ライブラリには、以下のようなライブラリが含まれます。

math:数学関数
datetime:日時関数
random:乱数生成関数
os:OSに関する関数
sys:Pythonのシステムに関する関数

サードパーティライブラリには、以下のようなライブラリが含まれます。

numpy:数値計算ライブラリ
pandas:データ分析ライブラリ
scikit-learn:機械学習ライブラリ
Django:Webアプリケーションフレームワーク
Flask:Webアプリケーションフレームワーク

モジュール(Module)

ロボ君

モジュールはPythonのコードを組織化するための単位デス。

モジュールは一般的に、関連する関数や変数を1つのファイル(.py)にまとめ、それをモジュールとして扱います。
モジュール内にはクラスや関数が含まれ、他のPythonスクリプトからインポートして使用できます。

モジュールは、以下のような方法で作成します。

# モジュールの作成
def add(x, y):
    return x + y

def multiply(x, y):
    return x * y

# モジュールの保存
import os

desktop_path = os.path.expanduser("~/Desktop")  # デスクトップのパスを取得

file_content = """def add(x, y):
    return x + y

def multiply(x, y):
    return x * y
"""

file_path = os.path.join(desktop_path, "my_module.py")

with open(file_path, "w") as f:
    f.write(file_content)


# モジュールの読み込み
import my_module

# 関数の呼び出し
print(my_module.add(1, 2))
print(my_module.multiply(2, 3))

# 出力結果
# 3
# 6
  1. モジュール add(x, y) と multiply(x, y) を作成し
  2. デスクトップにモジュールを保存
  3. モジュールを読み込み
  4. モジュールの関数を呼び出しています
  5. 3と6が出力されます

クラス(Class)

ロボ君

クラスはオブジェクトの設計図デスネ。

オブジェクトの属性(変数)とメソッド(関数)を定義します。
また、インスタンスとして実際のオブジェクトを作成できます。

クラスは、以下のような方法で作成します。

# クラスの作成
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print("Hello, my name is {}. I am {} years old.".format(self.name, self.age))

# クラスのインスタンス化
person = Person("Real", 54)

# メソッドの呼び出し
person.say_hello()

# 出力結果
# Hello, my name is Real. I am 54 years old.
  1. Personクラスを作成
  2. Personクラスをインスタンス化
  3. インスタンス化したPersonクラスのメソッドの呼び出し
  4. Hello, my name is Real. I am 54 years old.が出力されます

メソッド(Method)

ロボ君

メソッドは、クラス内に定義された関数デス。

インスタンス変数やクラス変数にアクセスしたり、インスタンスの状態を変更したりすることができます。

メソッドは、以下のような方法で作成します。
※例は上記と同じです。

# クラスの作成
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):        #メソッドの部分   
        print("Hello, my name is {}. I am {} years old.".format(self.name, self.age))

# クラスのインスタンス化
person = Person("Real", 54)

# メソッドの呼び出し
person.say_hello()

# 出力結果
# Hello, my name is Real. I am 54 years old.

もう一回まとめ

ライブラリは、複数のモジュールをまとめたもの。
モジュールは、Pythonのファイル(.py)のこと。関数やクラスが定義されている。
クラスは、オブジェクトの型のこと。メソッドをまとめたもの。
メソッドは、クラス内に定義された関数のこと。

りある

やっとわかってきた!



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次