すべてがO(オブジェクト)になるってのはやっぱり凄いね。
パワフルかつフリーダム、attrgetter*1とか使うと身もだえかねない。
Widgetのgetterに流し込むだけでかなり自由に動きをカスタマイズできる。
当たり前のことなんだけど、なかなかここに到達できなかった。もう少し分かってくると、Widgetが手足になる!(といいなぁ)
あと、TurboGearsは、
dev.cfgに
tg.fancy_exception=True
としておくのが無難。エラーの親切度が違います!
*1:指定した名前のアトリビュートを返す関数オブジェクトを得る