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
- モジュール add(x, y) と multiply(x, y) を作成し
- デスクトップにモジュールを保存
- モジュールを読み込み
- モジュールの関数を呼び出しています
- 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.
- Personクラスを作成
- Personクラスをインスタンス化
- インスタンス化したPersonクラスのメソッドの呼び出し
- 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)のこと。関数やクラスが定義されている。
クラスは、オブジェクトの型のこと。メソッドをまとめたもの。
メソッドは、クラス内に定義された関数のこと。
やっとわかってきた!