作者huggie (huggie)
看板Python
标题Re: [问题] zope interface
时间Thu Mar 1 17:36:35 2012
※ 引述《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