@blog.justoneplanet.info

日々勉強

Pythonでモジュールを使う

モジュールは Python の定義や文が入ったファイル。 ファイル名はモジュール名に接尾語 ,py がついたものになる。 モジュールの中では、モジュール名をグローバル変数 __name__ で取得できる。

■クラスのモジュール

/dog.py

まずはモジュールを定義する。

class Dog:
    name = ''
    def __init__(self, name):
        self.name = name
    def cry(self):
        print(self.name)

モジュールだからといって特に変わった記述をする必要はない。

/index.py

以下のようにして上述のモジュールを使用する事ができる。

import dog

pochi = dog.Dog('pochi')
pochi.cry()

ちなみに以下のようにしてしまうと、Dogクラスにアクセスできなくなってしまうので注意が必要だ。

import dog

dog = 'pochi'
pochi = dog.Dog('pochi')
pochi.cry()

また、以下のようにしても使用する事ができる。この場合、モジュール名dogがローカルのシンボルテーブル内では定義されない。

from dog import Dog

pochi = Dog('pochi')
pochi.cry()

更に、以下のように*を使用することもできる。この場合、アンダーバーで始まる名前以外を全てインポートすることができる。

from dog import *

pochi = Dog('pochi')
pochi.cry()

■関数のモジュール

/hoge.py

モジュールファイルに関数が記述されていることもあるはずだ。

str = 'fuga'
def fuga():
    return str

/index.py

以下のようにしてhogeモジュールを使用することができる。また、モジュール内のグローバル変数にアクセスすることもできる。

import hoge

hoge.str = 'piyo'
value = hoge.fuga()
print(value)# piyo

■モジュール検索パス

以下のようにインポートする場合を考える。

import hoge

上述の場合、モジュールは以下のパスから検索される。

  • カレントディレクトリ内のhoge.py
  • sys.pathリストのディレクトリ内のhoge.py

モジュールを定義するときは標準モジュールと名前が被らないようにしないと!

■パッケージ

/Hoge/__init__.py

パッケージの各ディレクトリに必要なファイル。ファイルの中身は空で良い。

/Hoge/dog.py

パッケージ内のモジュールについては以下のようにする。特に変わったところはない。

class Dog:
    __name = ''
    def __init__(self, name):
        self.__name = name
    def cry(self):
        print(self.__name + ', bow!')

/index.py

パッケージ内のモジュールは以下のようにして使用する。

from Hoge import dog

pochi = dog.Dog('pochi')
pochi.cry()

また、以下のようにして使用することもできる。

import Hoge.dog

pochi = Hoge.dog.Dog('pochi')
pochi.cry()

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment