external method について
external method では、明示的に指定した以外にもう一つ引数が渡されるようです。これは、Zope Book では self と記されていて、実行コンテキストを指しているようです。試しに、次のような external method を書いてみました*1。
def foo(self, name="xxx"): return dir(self)
これを実行したら、実行コンテキストに含まれるメンバがたくさん表示されました。
ちなみに、このコンテキストのフォルダに foo_img という画像オブジェクトがあるとき、
def foo(self, name="xxx"): return self.foo_img
のようにすると、
<img ...>
という HTML タグが返ってきます。面白いです。return getattr(self, "foo_img") でも良いのかな?
ちなみに
external merhod の定義された外部ファイルを修正したら、External Method オブジェクトを更新しなくてはいけないのかなあ。これは、メモです。
*1:最初、return self でなくて print self としてしまい、ハマりました。