Re: [問題] zope interface

看板Python作者 (阿真)時間13年前 (2012/03/01 14:35), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/4 (看更多)
※ 引述《huggie (huggie)》之銘言: : 我在看 twisted 的時候看到了 zope interface : 看得還蠻糊里糊塗的 : http://docs.zope.org/zope.interface/README.html : 1. 他的 IFooFactory() 的 __call__ 是直接要造出一個 foo : 不透過 class 的意思嗎? __call__ 就python裡只是讓instance有類似函式呼叫的寫法 例如: class a: def __call__( self, word ): print word b = a() b("hi") #會print hi 文中的__call__看起來只是要註解 __init__ 而使用的招式而已 而IFooFactory 是要讓class(也是一種object)直接 提供(provide) Interface 因為跟他之前介紹的 instance 提供 Interface有點不同 所以換個名字吧? 文後也說 因為這招很常被使用到 所以有 zope.interface.classProvides(IFooFactory) 直接讓 Foo2 提供 Interface 的寫法 : 2. 不太懂 zope.interface.classProvides(IFooFactory) 這句的用意? : 那跟 zope.interface.implements(XXX) 的差別在哪裡? : 可能1看不太懂,所以2也不太懂.=/ 這個你可能要看看文章蠻前面有解說 implememt 與 provide 的意思 你說的第一句是 我上面最後提的寫法 implements(XXX) 是指說 若把implements寫在class裡 那class的instance就會provide XXX 跟class directProvide interface 意思差蠻多的 以上是我看了一下你提供文章後的心得 有錯不負責 有空請指正 僅供參考 囧> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.176.140.46

03/01 15:14, , 1F
__call__就是python的函式呼叫協定,每個函式都會有
03/01 15:14, 1F
文章代碼(AID): #1FJnYiY0 (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 4 篇):
1
1
1
1
文章代碼(AID): #1FJnYiY0 (Python)