6
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?

読み飛ばしてください

Python、いいですよね。

Pythonを使うということはimportもたくさん使うことになると思いますが、
かなり重要で理解が必要な機能の一部です。
単なるコードの再利用以上の意味を持っていて、結構いろいろ覚えておくといいことがあるので、
まとめてみました。

importの基本

モジュールとは何か

めちゃくちゃ基本から始めます。
Pythonにおいて、モジュールとは単にPythonファイル(.py)のことを言います。
モジュールには関数、クラス、変数などが含まれており、これらを他のPythonプログラムで再利用することができます。

importの基本的な構文

最も基本的なimportの構文はこれです。

import モジュール名

これで、指定したモジュール全体をインポートすることができます。

importのメカニズム

Pythonがモジュールを探す仕組み

Pythonは以下の順序でモジュールを探します。

  1. 現在のディレクトリ
  2. PYTHONPATH環境変数で指定されたディレクトリ
  3. Pythonの標準ライブラリのディレクトリ

sys.pathの役割

sys.pathは、Pythonがモジュールを探すディレクトリのリストです。import sysを行い、print(sys.path)を実行することで、現在のsys.pathの内容を確認することができます。

importの種類と使い方

import文

import math

この方法でインポートすると、math.sin()のように、モジュール名を接頭辞として使用する必要があります。

from ... import文

from math import sin, cos

この方法では、指定した関数や変数を直接使用できます(例:sin(0))。
使うオブジェクトが絞られているなら、これを使う方が名前空間が汚染されないのでおすすめです。

as キーワードを使った別名インポート

import numpy as np

この方法で、長いモジュール名に短い別名をつけることができます。
この場合、np.array()のように自分で付けた別名で使用できるようになります。
便利なのでよく使います。

パッケージとimport

パッケージの構造

パッケージは、複数のモジュールをまとめて管理するための仕組みです。
pipとかでインストールするアレです。

よくモジュールとパッケージが混同されがちですが、実際には
モジュールをまとめたものがパッケージなわけです。

ディレクトリ構造を使って表現され、各ディレクトリには__init__.pyファイルが必要です。

init.pyの役割

__init__.pyファイルは、そのディレクトリがPythonパッケージであることを示します。
また、パッケージのインポート時に実行されるコードを含むこともできます。
パッケージを作るわけでもない限り、あまり気にしたくても大丈夫なやつです。

importのベストプラクティス

効率的なimportの書き方

必要なものだけをインポートする

必要最小限のインポートにすることで、名前空間の汚染を防ぎ、メモリ使用量を抑えることができます。
また、コードの可読性も向上します。
依存関係のエラーも減ると思います。

import *の使用を避ける

import *を使用すると、どの名前がインポートされたのかが不明確になり、意図しない名前の上書きが発生する可能性があります。
普通に危険です。

PEP 8のimportに関するガイドライン

インポートは通常ファイルの先頭に置く

ファイルの先頭にインポートを置くことで、そのモジュールが依存している外部リソースを一目で確認できます。
また、循環インポートの問題を早期に発見しやすくなります。

インポートは以下の順序で行う

  1. 標準ライブラリ
  2. サードパーティライブラリ
  3. ローカルアプリケーション/ライブラリ

この順序でインポートを行うことで、依存関係の優先順位が明確になります。
また、ローカルの変更が標準ライブラリやサードパーティライブラリのインポートに影響を与えることを防ぎます。
意外とやっていない人が多いので意識すると良いと思います。

最後に

Pythonのimportについてまとめました。

他にもいろいろ知りたい方は、こちらをどうぞ。

6
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
6
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?