Translations:Introduction to Python/152/ja

今、Python使いこなすためには、最後に1つ必要なことがあります. それはどのようにファイルやモジュールを操作するかです.

これまで、インタプリタで1行ずつPythonの命令を書いてきましたね？もしいくつかの行をまとめて書くことができ、それらを一度にすべて実行できたらどうですか？それはもっと複雑なことをするためには手軽な手段です. さらに私たちの作ったものを保存することができます. まあ、それも非常に簡単です. 単にテキストエディタ（Windowsのメモ帳など）を開き、インタプリタでプログラムを記述するのと同様にPythonのプログラムをすべて書き、その後、.pyの拡張子でこのファイルをどこかに保存します. それだけです、あなたは完全なPythonプログラムを作ることができました. もちろん、メモ帳よりも便利なエディタがありますが、それはPythonプログラムは、テキストファイル以外の何者でもないことを示しているだけです.

Pythonでプログラムを実行する方法は何百もあります. Windowsでは、単にファイルを右クリックしPythonでそれを開いて実行します. しかし、Pythonインタプリタから直接プログラムを実行することもできます. 直接実行するには、Pythonインタプリタが実行しようとする.pyプログラムの保存場所を知っている必要があります.

FreeCADでの最も簡単な方法は、FreeCADのbinフォルダまたはModフォルダのようにFreeCADのPythonインタプリタにデフォルトで設定されている場所にプログラムを配置することです. 次のようなファイルを作成します:

def sum(a,b): return a + b

print "test.py succesfully loaded"

そして作成したファイルをFreeCADの/binディレクトリにtest.pyとして保存します. さて、FreeCADを起動しましょう、そしてインタプリタウィンドウへ次のように入力します.

import test

.pyの拡張子を除いたものです. これは単にインタプリタで1行ずつ書いて実行したかのように、ファイルの内容を実行します. sum関数が作成され、メッセージが出力されます. 1つの大きな違いがあります：importコマンドは、ファイルに書かれたプログラムを実行するだけでなく今までのプログラム同様内部の関数を読み込むのでインタプリタで利用できるようになります. 関数を含むファイルは、モジュールと呼ばれます.

通常、インタプリタでsum関数を記述し、実行するとき単に次のように入力します:

sum(14,45)

これは以前行ったとおりです. 我々はsum関数を含むモジュールをインポートすると、構文が少し異なっています. 次のように入力します:

test.sum(14,45)

つまり、モジュールは"container"として読み込まれ、そのすべての関数は内部にあります. 多くのモジュールをインポートし、すべての関数をうまく整理しておくことができるので、これは非常に有用です. したがって、基本的に、something.somethingElseのようにドットで区切ることによって、somethingElse関数がsomethingモジュールの内部にあることを意味しています.

また、testの部分を記述せずにsum関数のように、メインのインタプリタ空間に直接関数を読み込むことができます:

from test import * sum(12,54)

基本的に、すべてのモジュールはそのように動作します. モジュールをインポートしてから、module.function(引数)のようにその関数を使用することができます. ほとんどすべてのモジュールが関数を定義し、新しいデータ型とクラスをインタプリタ、モジュール内でモジュールをインポートすることもできるのでPythonモジュールで使えるようになります.

最後にもう一つ、非常に有用なものがあります. どのようなモジュールがありその内部にはどのような関数があってどのように使う（つまり必要とする引数の種類）かわかりますか？ Pythonがhelp関数を持っていることをすでに知っています. 次の操作をしてみましょう:

help modules

すべての利用可能なモジュールのリストが表示されます. 対話式ヘルプから抜け出すには、qを入力し、それらのいずれかをインポートすることができます. dirコマンドを使用してそのコンテンツを見ることができます.

import math dir(math)

mathモジュールに含まれるすべての関数と同様、__doc__, __file__, __name__といった奇妙な名前が表示されます. __doc__ はドキュメントの文字列を表し、非常に便利です. （既存の）モジュールに含まれるすべての関数は使用方法に関する説明を__doc__に持っています. 例えばmathモジュールにはsin関数含まれていることがわかります. それの使用方法が知りたいですか？

print math.sin.__doc__

最後に少し使いやすい方法は:新しいモジュールをプログラミングするとき、時々プログラムのテストを行いたいです. 一度、Pythonインタプリタでモジュールを小さく区切って新しいコードをテストするためにプログラムを記述します.

import myModule myModule.myTestFunction

しかし、myTestFunction関数が正しく動作しませんか？エディタに戻って修正します. そのとき、Pythonインタプリタを一度閉じて再度開くと簡単にモジュールを更新することができます.

reload(myModule)