2009年2月27日金曜日

Acquisition cont'ed

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
/opt/Plone-2.5.3/lib/python/Acquisitionに.soがあった。
テストコードから明らか。朝、目覚めたときに脳裏に去来したコードに近い。googleでしらべたときにネット上に転がっている文章は、なんであんなに説明に迷走するのかわからない。こっから先は_Acquisition.cを見るか、ベースとなった.pyを探すかというところ。

>>> import ExtensionClass, Acquisition

>>> class C(ExtensionClass.Base):
... color='red'

>>> class A(Acquisition.Implicit):
... def report(self):
... print self.color

>>> a = A()
>>> c = C()
>>> c.a = a

>>> c.a.report()
red

>>> d = C()
>>> d.color = 'green'
>>> d.a = a

>>> d.a.report()
green

>>> a.report() # raises an attribute error
Traceback (most recent call last):
...
AttributeError: color


google codeの結果。Cの実装は非本質的なものがいっぱい入っていて密度が低いのでいやなんだよね。あとはtest codeがあるので、そのtestをpassするようなpyを実装して理解を確認するとかかな。

0 件のコメント: