組み込み型 file

ファイルを扱うには、パッケージ java.io を利用するのが便利です。Jython には、これに代わる組み込み型 file が提供されています。そこで、Java/Jython の違いを比較してみるのも一興です。
ファイルを扱いたいときには、次の典型的なイディオムに沿って、

    for e in file(name).readlines():
view.append(e)

コンストラクターの代わりに)関数呼び出し file() を利用するのが便利です。変数 e は、テキストファイル name の各行 readlines() を先頭から順に参照します。そして、テキスト領域 view の末尾に、各行 e の内容を追加 append します。

支援ツール:TextArea の状態を確認する

前述したツールを改良します。後述するコードを実行すると、次のようなインスペクターが現われます。


fig04
リスト項目にあるのは、TextArea インスタンスのメンバー特性です。1)左の項目を選択すると、2)関連する情報が右のテキスト領域に表示されます。と同時に、3)型情報が下の領域に表示されます。つまり、TextArea インスタンスの状態と、どのメソッド呼び出しに応答できるかを、インスペクターに組み込まれた「TextArea 自身を使って」確認しているのです。
試しに、1)リスト項目から append を選択すると、3) とあることから、これは TextArea インスタンスが応答できるメソッドだと分かります。
アプリケーションの開発中に、このインスペクターを呼び出すコードを挿入しておくと、未知のコンポーネントのメンバー特性を「実行時」に(プログラマーが望む場所で)確認できるので、簡易ヘルプツールとしても重宝します。
《Tips》オンラインマニュアル等で得られる情報では、実行中の(最新版とは限らない)バージョンとの整合性を保証できません。インスペクターで得られる情報は、実行中のオブジェクト自身から得られる情報なので、その心配はありません。


Previous|4/5|Next

組み込み関数 help

組み込み関数 help を利用すると、次のように、

>>> help(file)
Help on class file in module __builtin__:
...

組み込み型 file に関する「すべて」のヘルプ情報が出力されます。しかし、得られた情報は、ときに冗長に感じることがあります。そこで、次のようにすると、

>>> help(file.readlines)
Help on method_descriptor:

readlines(...)
readlines([size]) -> list of strings, each a line from the file.

Call readline() repeatedly and return a list of the lines so read.
The optional size argument, if given, is an approximate bound on the
total number of bytes in the lines returned.

メソッド file.readlines に関する「個別」のヘルプ情報が得られます。