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

【Python3エンジニア認定基礎試験】6. モジュール

Last updated at Posted at 2024-08-31

6.モジュール

Pythonで長いプログラムを書く際、コードの再利用やメンテナンスを考えると、コードをいくつかのファイルに分割し、それらをモジュールとして扱うのが効率的です。モジュールは、Pythonのコードをまとめたファイルで、他のスクリプトやモジュールから簡単に再利用できます。

6.1 モジュールの定義とインポート

モジュールは、Pythonの定義(関数、変数など)をまとめた .py ファイルです。例えば、以下のようなファイル fibo.py を作成します:

# Fibonacci numbers module

def fib(n):    # write Fibonacci series up to n
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()

def fib2(n):   # return Fibonacci series up to n
    result = []
    a, b = 0, 1
    while a < n:
        result.append(a)
        a, b = b, a+b
    return result

次に、このモジュールをPythonインタプリタで使用するには、import文を使います。

>>> import fibo

このインポートは、モジュール fibo 内で定義された関数や変数を参照可能にします。ただし、モジュール名を使ってアクセスする必要があります。

>>> fibo.fib(1000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> fibo.fib2(100)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

よく使用する関数があれば、ローカル名に割り当てることもできます。

>>> fib = fibo.fib
>>> fib(500)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

6.1.1 モジュールの初期化

モジュールには関数定義に加え、初期化用のコードを含めることができます。インポートされたときにこのコードは1回だけ実行されます。

6.1.2 他のモジュールをインポート

モジュールは他のモジュールをインポートできます。通常、import文はモジュールの先頭に書かれます。

import sys
import os

6.1.3 名前空間の操作

特定の関数だけをインポートするには、以下のようにします。

from fibo import fib, fib2
fib(500)

また、モジュール名を別の名前でインポートすることも可能です。

import fibo as f
f.fib(500)

6.2 コンパイル済みファイル

Pythonは、モジュールの読み込みを高速化するために、コンパイル済みの .pyc ファイルを自動的に作成します。
これにより、次回以降のインポート時にモジュールの読み込みが速くなります。

6.3 標準モジュール

Pythonには多くの標準モジュールが同梱されており、sysモジュールやosモジュールなどはその例です。
標準モジュールは、Pythonインタプリタに直接ビルトインされているため、即座に利用可能です。

import sys
sys.ps1 = 'C> '

6.4 dir() 関数

dir()関数を使うと、モジュールが定義している名前の一覧を取得できます。

>>> import fibo
>>> dir(fibo)
['__name__', 'fib', 'fib2']

引数を指定しない場合、現在の名前空間にあるすべての名前が返されます。

>>> dir()
['__builtins__', '__name__', 'fibo', 'sys']

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