2009年10月16日金曜日

モジュールのimportとreload

Pythonでは、コマンドラインから入力したコマンドだけでなく、テキストファイルに書いたソースファイルをモジュールとしてimportすることもできます。1つのソースファイルを複数回importすることはできないので、モジュールを変更した場合や、モジュールを再実行したい場合はreloadする必要があります。ソjavascript:void(0)ースファイルの拡張子は必ずpyにする必要があります。

モジュールの使用例
以下のスクリプトをhelloworld.pyをカレントディレクトリに保存します。
print "Hello World!!!"

カレントディレクトリはosモジュールのgetcwdメソッドで取得できます。
>>> import os
>>> os.getcwd()
'C:\\Python25'

さっそく、作成したモジュールを使ってみましょう。
>>> import helloworld #定義したモジュールをインポートします
Hello World!!!
>>> import helloworld #すでにインポート済みなので何も起こりません。
>>> reload(helloworld) #リロードすると、再インポートされます。
Hello World!!!
#変更がなかったのでキャッシュからインポート

このように、一連のスクリプトを外部ファイルに保存することで、スクリプトを毎回入力する必要がなくなります。

外部ファイルによる関数の定義
外部ファイルで関数を定義することもできます。外部ファイルで定義した関数はモジュール内にインポートされます。などと、言葉で説明しても伝わらないのでサンプルプログラムで説明します。

dog.pyというモジュールに以下のソースコードを保存します。
# coding=SJIS
def drink():
  print "ごくごく"
※1行目のコメントで、テキストファイルの文字コードを指定します。

使用例
>>> import dog
>>> dog.drink()
ごくごく
>>>
インポートしたすると、drinkというメソッドをもったdogというモジュールが生成されます。dog.drink()で、drinkメソッドを実行することができます。

以下のように、dog.drinkメソッドを変数に代入することもできます。
>>> drink = dog.drink
>>> drink()
ごくごく

0 件のコメント:

コメントを投稿