Re: [問題] zope interface
※ 引述《KSJ (阿真)》之銘言:
: ※ 引述《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__ 而使用的招式而已
就是這句不懂。註解中的"Create a foo"是說IFactory() 直接會create
一個 foo 還是implement IFactory 的某個class() 會 create 一個 foo?
: 而IFooFactory
: 是要讓class(也是一種object)直接 提供(provide) Interface
: 因為跟他之前介紹的 instance 提供 Interface有點不同 所以換個名字吧?
: 文後也說 因為這招很常被使用到 所以有
: zope.interface.classProvides(IFooFactory)
: 直接讓 Foo2 提供 Interface 的寫法
你的意思是 IFooFactory 定義了provide者必須有 invocation 即會製造出
一個 foo 的功能, 而 class Foo2 因為 invocation 時會製造出
foo 的功能因此也是 provide IFooFactory?
: : 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: 114.42.57.53
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章