2

Zope 3を使用してIMyInterface(context)ルックアップを実行すると、どういうわけか自動的にgetAdapter()にマップされます。

ただし、同等のマルチアダプタは存在しますか。何かのようなもの:

  portal_state = IPortalState((self.context, self.request))

にマップします

  portal_state = getMultiAdapter((self.context, self.request), interface=IPortalState)
4

2 に答える 2

4

そのような近道はありません。あなたの最初の例は、タプルを適応させることです (サポートする必要がある一般的なケースです)。

これはリストで何度も議論されてきましたが、詳細の内外を思い出すことはできません. 知る必要がある場合は、次のスレッドから始めることができます: http://tech.groups.yahoo.com/group/zope/message/185605

于 2012-05-20T13:17:12.653 に答える
3

いいえ、マルチアダプター ルックアップの短縮形はありません。http://groups.google.com/group/zope-core-dev/browse_thread/thread/156acde2c8e799c7/63ca158f076ed010?pli=1の終わりに向けた議論で与えられた理由は、zope.interface の一部のユーザーが存在することに依存しているためです。タプルの単一適応を行うことができます。

于 2012-05-20T13:18:30.667 に答える