Python - モジュール

こんにちは、未来のPythonの魔法使いたち!今日、私たちはPythonのモジュールの魔法の世界に興味深い旅に出ます。プログラミングが初めての方でも心配しないでください。私があなたの友好的なガイドとして、すべてをステップバイステップに説明します。だから、あなたの仮想の杖(キーボード)を取って、一緒に飛び込もう!

Python - Modules

Pythonモジュール

あなたが魔法の城(あなたのプログラム)を建てていると想像してください。すべてを一から作り始めるのではなく、あらかじめ作られた塔、壁、ゲートを取り出して簡単に組み立てたらどうでしょうか?それがまさにPythonのモジュールです - プログラムに簡単に使用できる書かれているコードです。

Pythonの組み込みモジュール

Pythonには宝の箱のように多くの組み込みモジュールがあります。これらは無料の魔法の呪文のように、今すぐ使用できます。ひとつ試してみましょう!

import random

# 1から10までのランダムな数を生成
magic_number = random.randint(1, 10)
print(f"あなたの魔法の数は: {magic_number}")

この例では、randomモジュールを使用してランダムな数を生成しています。帽子の中からウサギを出すのと似ていますが、数の方です!

Pythonのユーザー定義モジュール

組み込みモジュールは素晴らしいですが、時々自分の魔法の呪文を作る必要があります。そんなときに便利なのがユーザー定義モジュールです。

Pythonモジュールの作成

簡単なモジュールをmagic_spells.pyという名前で作成しましょう:

# magic_spells.py

def levitate(object):
return f"{object} は空で浮いています!"

def disappear(object):
return f"{object} は空気の中に消えました!"

今や私たちには2つの魔法の関数を持つ独自のモジュールがあります!

import文

新しく作成したモジュールを使用するために、それをインポートする必要があります:

import magic_spells

# モジュールから関数を使用
print(magic_spells.levitate("本"))
print(magic_spells.disappear("ウサギ"))

出力:

本 は空で浮いています!
ウサギ は空気の中に消えました!

from ... import文

時々、モジュールから特定の呪文だけを必要とします。そんなときにfrom ... importが便利です:

from magic_spells import levitate

# 今やmagic_spells接頭辞なしで直接levitateを使用できます
print(levitate("椅子"))

出力:

椅子 は空で浮いています!

from...import *文

モジュールからすべての呪文をインポートしたい場合、from...import *を使用できます:

from magic_spells import *

# 今やすべての関数を直接使用できます
print(levitate("テーブル"))
print(disappear("帽子"))

しかし、この方法は注意が必要です!パンドラの箱を開けるのと同じで、同じ名前の既存の関数をうっかり上書きする可能性があります。

import ... as文

時々、モジュール名が長くて混乱しやすいです。import ... asを使用してニックネームをつけることができます:

import magic_spells as spells

print(spells.levitate("鉛筆"))

モジュールの場所

Pythonはいくつかの場所でモジュールを探します:

  1. 現在のディレクトリ
  2. PYTHONPATH(設定されている場合)
  3. インストールに依存するデフォルトディレクトリ

PYTHONPATH変数

PYTHONPATHは、Pythonが追加のモジュールをどこで探すかを示す魔法の地図のようなものです。システムの環境変数に設定することができます。

名前空間とスコープ

名前空間は、あなたの魔法の世界の異なる領域と考えてください。各モジュールは独自の名前空間を持ち、同じ名前の関数や変数間の衝突を防ぎます。

モジュールの属性

モジュールには特別な属性があります。いくつかを探ってみましょう:

import magic_spells

print(magic_spells.__name__)  # モジュールの名前を表示
print(magic_spells.__file__)  # モジュールのファイルパスを表示

name属性

__name__属性は特別です。スクリプトが直接実行されるときは__main__であり、インポートされたときはモジュールの名前になります。

# magic_spells.pyに以下を追加:
if __name__ == "__main__":
print("このモジュールは直接実行されています")
else:
print("このモジュールはインポートされています")

dir()関数

dir()関数は、モジュールで定義されているすべての名前を示す魔法の鏡のようなものです:

import magic_spells

print(dir(magic_spells))

reload()関数

モジュールに変更を加えて、Pythonを再起動せずにリロードしたい場合、reload()を使用できます:

from importlib import reload
import magic_spells

# magic_spells.pyに変更を加える
reload(magic_spells)

Pythonのパッケージ

パッケージは、複数のモジュールを含む魔法の本のようなものです。特殊な__init__.pyファイルがあるディレクトリです。

以下は、今日学んだインポート方法のまとめです:

方法 構文
基本インポート import module_name import magic_spells
Fromインポート from module_name import function_name from magic_spells import levitate
インポートすべて from module_name import * from magic_spells import *
エイリアスをインポート import module_name as alias import magic_spells as spells

それでは、弟子たち!Pythonのモジュールの基本を学びました。覚えることは実践です。異なるモジュールを使って実験し、自分だけの魔法のPythonの世界を作りなさい。幸せなコーディングを!

Credits: Image by storyset