Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのimport文とは?基本構文からfrom...importの使い方まで徹底解説

Pythonでは、任意のソースファイルを「モジュール」として扱い、別のPythonファイルからimport文を実行することで読み込んで利用できます。モジュールを活用することで、コードの再利用性が高まり、プログラムを整理して管理しやすくなります。

import文の基本構文

import文は以下のような形式で記述します。

import module1[, module2[,... moduleN]

インタプリタがimport文に到達すると、指定されたモジュールが検索パス上に存在する場合にそのモジュールを取り込みます。ここでいう検索パスとは、モジュールをインポートする前にインタプリタが探索するディレクトリのリストのことです。

例えば、support.pyというモジュールをインポートしたい場合は、スクリプトの先頭に次のように記述します。

#!/usr/bin/python
# モジュールsupportをインポート
import support
# これでモジュール内で定義された関数を呼び出せる
support.print_func("Zara")

このコードを実行すると、以下の出力が得られます。

Hello : Zara

なお、モジュールは何回インポートされても一度しか読み込まれません。この仕組みにより、複数箇所からインポートされた場合でも、モジュールのコードが何度も繰り返し実行されることを防いでいます。

from...import文で特定の要素だけを読み込む

Pythonのfrom文を使うと、モジュール全体ではなく、特定の属性(関数や変数など)だけを現在の名前空間に取り込むことができます。構文は以下の通りです。

from modname import name1[, name2[, ... nameN]]

例えば、fibモジュールからfibonacci関数だけをインポートしたい場合は、次のように書きます。

from fib import fibonacci

この文は、モジュールfib全体を現在の名前空間に取り込むわけではありません。fibモジュールの中のfibonacciという項目だけを、インポート元モジュールのグローバルシンボルテーブルに登録します。これにより、fibonacci()のようにモジュール名を付けずに直接関数を呼び出せるようになります。

from...import * ですべての名前を読み込む

アスタリスク(*)を使えば、モジュール内のすべての名前を現在の名前空間に一括でインポートすることも可能です。

from modname import *

この方法を使うと、モジュール内のすべての項目を簡単に取り込めます。ただし、どの名前がどこから来たのか分かりにくくなり、名前の衝突を引き起こす恐れもあるため、この文の使用は必要最小限にとどめることが推奨されます。可読性と保守性を重視するなら、通常のimportfrom...importで必要な要素だけを明示的に読み込むのが良い習慣です。

  1. Pythonのpydocモジュールを使ったドキュメント生成の完全ガイド

    はじめにpydocモジュールは、Pythonモジュールから自動的にドキュメントを生成するための標準ライブラリです。生成されたドキュメントは、コンソール上にテキストとして表示できるだけでなく、Webブラウザでの閲覧やHTMLファイルとしての保存にも対応しています。この記事では、さまざまな場面でドキュメントを確認する方法を解説するとともに、自分のPythonスクリプト用のドキュメントを作成する際に役立つdocstring(ドキュメンテーション文字列)についても詳しく学びます。それでは、pydocの具体的な使い方を見ていきましょう。準備:pydocのインポートpydocモジュールはPythonに最初

  2. Pythonのgetpassモジュールとは?パスワード入力とユーザー名取得の基本を解説

    Pythonの標準ライブラリには、ターミナル上で動作するアプリケーションにおいて、ユーザーの認証情報を検証してから処理を実行したい場合に役立つgetpassモジュールが用意されています。このモジュールには主に2つの関数が定義されており、セキュリティを意識したコマンドラインツールの開発に欠かせない存在です。 getpass() 関数:パスワードを安全に入力する getpass()関数は、ユーザーにパスワードの入力を促すための関数です。デフォルトでは、ターミナルに入力されたキーは画面に表示(エコー)されないため、第三者にパスワードを盗み見られる心配がありません。 また、プロンプトとして表示される