前回一番最初に作成した空のFormを表示するスクリプトをクラスを使って作成します。
同じ動きをする2つのファイルを比べると次のようになり、今回作成したクラスファイルの方が1.5倍ほど行数が増えています。
変更前:01_form.ipyファイル
import clr
clr.AddReferenceByPartialName("System.Windows.Forms")
clr.AddReferenceByPartialName("System.Drawing")
import System
from System.Windows.Forms import Form
from System.Drawing import Size
form = Form()
form.Size = Size(300,200)
form.Text = "Hello World!"
## main ##
System.Windows.Forms.Application.Run(form) 変更後:a01_formclass.ipyファイル
import clr
clr.AddReferenceByPartialName("System.Windows.Forms")
clr.AddReferenceByPartialName("System.Drawing")
import System
from System.Windows.Forms import Form
from System.Drawing import Size
class MyForm(Form):
def __init__(self):
self.Size = Size(300,200)
self.Text = "Hello World!"
pass
def run(self):
System.Windows.Forms.Application.Run(self)
pass
## main ##
form = MyForm()
form.run() このままでは書き方が冗長になっただけで、おもしろくありません。 初心者向けにはより短い方が好まれるため、入門書によく載っているのは短い方です。
新しく作成したファイルの本体処理は2行に収まっています。 別々のファイルにするとライブラリの呼び出しが加わって3行程度が本体処理になるはずです。
まだ簡単な初期化を行なっているだけですが、ここからはアプリケーション固有の設定はクラス定義に押し込めて、イベントハンドラなど、軟性を確保したい定義は本体処理側で定義する方向を考えてみようと思います。
スクリプトの規模が大きくなってくると、別ファイルにクラスを作成する方が効率が高まります。 この場合の効率は作成する際に手分けをするという意味だけではなくて、設計やテストをファイル単位で考える事で最終的には作り手の覚えておくべきことを整理できるという意味も含みます。
入門書を終えた状態だと、同じようなスクリプトのコピーに頼ってしまいがちです。 次からはクラスを別ファイルに書き出し、ライブラリとして扱うことで、扱いが楽になるものなのか様子を眺めてみようと思います。
Created: 2010-03-13, Last modified: 2010-03-19
www.yasundial.org by
Yasuhiro ABE
is licensed under a Creative Commons Attribution 2.1 Japan License.
Permissions beyond the scope of this license may be available at http://www.yasundial.org/info/license.html.