工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Pythonモジュールインポート完全ガイド:実例付きで徹底解説

Pythonモジュールとは

モジュールは、変数、関数、クラスを含む単一のPythonファイルです。ファイル名をguru99.pyとすると、モジュールはguru99としてアクセスされます。モジュールを使うと、大規模プログラムを論理的なピースに分割し、コードを整理・再利用可能にできます。

なぜモジュールをインポートするのか

別ファイルに定義されたコードを使うには、それをインポートする必要があります。インポートにより、モジュールの関数、クラス、変数にアクセスできるようになります。これはJavaScript、Java、Rubyなどの言語におけるimportキーワードと同様です。

モジュールの作成とインポート

シンプルな例で説明します。

フォルダ構成:

modtest/
    test.py
    display.py

1. test.pyを作成:

def display_message():
    return 'Welcome to Guru99 Tutorials!'

2. display.pyを作成しtestをインポート:

import test
print(test.display_message())

display.pyを実行すると:

Welcome to Guru99 Tutorials!

モジュールからクラスをインポート

Car.pyが車クラスを定義しているとします:

class Car:
    brand_name = 'BMW'
    model = 'Z4'
    manu_year = '2020'
    def __init__(self, brand_name, model, manu_year):
        self.brand_name = brand_name
        self.model = model
        self.manu_year = manu_year
    def car_details(self):
        print('Car brand is', self.brand_name)
        print('Car model is', self.model)
        print('Car manufacture year is', self.manu_year)
    def get_car_brand(self):
        print('Car brand is', self.brand_name)
    def get_car_model(self):
        print('Car model is', self.model)

display.pyで使用:

import Car
car_det = Car.Car('BMW', 'Z5', 2020)
print(car_det.brand_name)
car_det.car_details()
car_det.get_car_brand()
car_det.get_car_model()

出力:

BMW
Car brand is BMW
Car model is Z5
Car manufacture year is 2020
Car brand is BMW
Car model is Z5

fromを使った特定アイテムのインポート

必要な関数や変数だけを直接インポート:

from test import display_message
print(display_message())

インポートしていない名前を使おうとするとNameErrorが発生:

from test import display_message
print(display_message1())

モジュールからすべてをインポート

import testでモジュール全体をインポートし、名前をモジュール名で修飾して使うか、from test import *で全名を現在の名前空間にインポート。後者は便利だが名前空間を汚染する可能性があります。

dir()の理解

組み込みdir()関数は、モジュールに定義された属性を含むオブジェクトのすべての属性をリストします:

import Car
print(dir(Car))

標準ライブラリの場合:

import json
print(dir(json))

パッケージの扱い

パッケージは__init__.pyファイルと1つ以上のモジュールを含むディレクトリです。例:

ディレクトリ構成:

mypackage/
    __init__.py
    module1.py
    module2.py
    module3.py

module1.py内:

def mod1_func1():
    print('Welcome to Module1 function1')
def mod1_func2():
    print('Welcome to Module1 function2')
# ...

エイリアスでインポート:

import mypackage.module1 as mod1
mod1.mod1_func1()
mod1.mod1_func2()

Pythonモジュール検索パス

Pythonがインポートを解決する際、以下の順でチェック:

  1. カレントワーキングディレクトリ。
  2. 組み込みモジュール。
  3. sys.pathにリストされているディレクトリ。

確認方法:

import sys
print(sys.path)

モジュールのエイリアス使用

モジュールに短い名前を付けて可読性向上:

import test as t
print(t.display_message())
print(t.my_name)

絶対インポート vs 相対インポート

マルチモジュールプロジェクトでは、モジュールをフルパス(絶対)で参照するか、現在のファイルからの相対パスで参照できます。

絶対インポート例

from package1.module1 import myfunc1
# または
import package1.module1
package1.module1.myfunc1()

相対インポート例

from .module1 import myfunc1
# または
from .subpkg.module3 import myfunc3

絶対インポートはプロジェクト移動時に明確でエラーが少ないが、冗長になりがち。相対インポートは簡潔だが、大規模プロジェクトでは追跡が難しくなる場合があります。

重要なポイント

Python

  1. Python モジュール: 作成・インポート・高度な活用
  2. Pythonのtimeモジュールをマスター:関数、構造体、実践例
  3. Python str.count()マスター:文字と部分文字列のカウント実例集
  4. Python format()文字列を明確な例でマスター
  5. Python String.find()メソッド完全ガイド:構文、例、代替手法
  6. Pythonラムダ関数をマスターする:実例とベストプラクティス
  7. Python round()関数を実例で徹底解説
  8. Python map()関数をマスター:構文、例、ベストプラクティス
  9. Python timeit():実行時間測定の実例付きガイド
  10. Python collections.Counter:効率的なカウント、更新、演算操作
  11. Python type()とisinstance()の理解:実例付き解説