このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】モジュールの利用方法

モジュールの利用方法

 Pythonのライブラリは、多数の機能をモジュールやパッケージとして提供しており、これらをインポートすることで、再利用可能なコードを簡単に利用できます。プログラムの実装において、必要な機能を自作する手間を省き、効率よく開発を進めるためには、ライブラリの正しいインポート方法と利用方法を理解することが重要です。
 ここでは、モジュールやパッケージの関係、import文の基本構文、およびfrom節を使ったインポート方法について学び、具体例を通してその使い方を詳しく解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.ライブラリのインポートの基本

1.1. モジュールとパッケージの関係

 Pythonでは、.pyファイルがモジュールとなり、複数のモジュールをまとめたものがパッケージです。パッケージは階層構造になっており、サブパッケージを含む場合もあります。

例:

  • モジュール名(パッケージなし): module
  • パッケージあり: package.module
  • サブパッケージあり: package.subpackage.module

解説

 自作の "utils.py" は単一モジュールとして利用できますし、"mylib/helpers.py" のように配置すれば、mylibパッケージの一部として扱えます。

1.2. import文の基本構文

 ライブラリを利用するには、まずモジュールやパッケージをプログラムに取り込む必要があります。基本のimport文は以下の構文です。

【構文】

import モジュール名

【例】

import random
print("Random number:", random.randint(1, 6))

実行結果

Random number: 2

解説

 この例では、標準ライブラリのrandomモジュールをインポートし、random.randint関数を用いて1から6までのランダムな整数を生成しています。

1.3. インポート時に別名を付ける

 モジュール名が長い場合や、短い名前で利用したい場合は、asキーワードを用いて任意の別名を付けることができます。

【構文】

import モジュール名 as 別名

【例】

import random as rnd
print("Dice roll:", rnd.randint(1, 6))

実行結果

Dice roll: 6

解説

 randomモジュールをrndという別名でインポートすることで、コード中で短くrnd.randint()と記述でき、可読性と記述の手間が向上します。

1.4. from節を使ったインポート

 from節を使うと、モジュール内の特定の機能だけをインポートでき、モジュール名を付けずに直接利用できます。

【構文】

from モジュール名 import 機能名, …
または、全機能をインポートする場合は:
from モジュール名 import *

【例 1:部分インポート】

from random import randint
print("Dice roll:", randint(1, 6))

実行結果

Dice roll: 5

【例 2:別名を付けた部分インポート】

from random import randint as ri
print("Dice roll:", ri(1, 6))

実行結果

Dice roll: 6

【例 3:パッケージ内のモジュールからのインポート】

from urllib.parse import urlparse
print(urlparse('https://www.example.com/'))

実行結果

ParseResult(scheme='https', netloc='www.example.com', path='/', params='', query='', fragment='')

解説

  • 例1では、randomモジュールのrandint関数だけをインポートして、モジュール名なしで使用しています。
  • 例2では、randintにriという別名を付けています。
  • 例3では、パッケージurllib内のparseモジュールから、urlparse関数を直接インポートし、パッケージ名とモジュール名を省略しています。

2.モジュールの利用例

2.1. randomモジュールによる乱数生成

 ライブラリのインポート方法を実際に試すため、randomモジュールを例に取り上げます。乱数生成の基本的な使い方を見てみましょう。

import random as rnd
# 1から6までの整数をランダムに生成する(サイコロの目)
dice_roll = rnd.randint(1, 6)
print("Dice roll:", dice_roll)

実行結果

Dice roll: 1

解説

  • 別名rndを利用することで、呼び出しが簡潔になります。
  • randint関数を使って、1から6までのランダムな整数を生成し、サイコロのような動作を実現しています。

2.2. urllib.parseモジュールによるURL解析

 別の例として、パッケージとサブパッケージを含むモジュールから機能をインポートする方法を示します。

from urllib.parse import urlparse
url = 'https://www.example.com/path?query=python'
parsed_url = urlparse(url)
print("Scheme:", parsed_url.scheme)
print("Netloc:", parsed_url.netloc)
print("Path:", parsed_url.path)

実行結果

Scheme: https
Netloc: www.example.com
Path: /path

解説

  • from urllib.parse import urlparseにより、urlparse関数を直接インポートしています。
  • この関数を使って、URLの構成要素(スキーム、ネットロケーション、パスなど)を簡単に取得でき、ウェブデータの解析や操作に活用できます。

まとめ

 モジュールの利用方法は、Pythonの豊富なライブラリ機能を効果的に活用するための基本中の基本です。

  • まず、import文を使ってモジュール全体をインポートする基本構文を理解します。
  • モジュール名に別名を付けることで、コードを簡潔に記述でき、from節を利用すれば、必要な機能だけを直接インポートできます。
  • パッケージ内のモジュールも、ドット記法を用いて柔軟に指定できるため、複雑なライブラリ構造も容易に扱えます。

 これらの技法を習得することで、標準ライブラリやサードパーティ製ライブラリの機能を自在に利用し、プログラムの実装効率と表現力を大幅に向上させることができます。