作者KSJ (阿真)
看板Python
标题Re: [问题] zope interface
时间Thu Mar 1 14:35:21 2012
※ 引述《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
1F:推 mikapauli:__call__就是python的函式呼叫协定,每个函式都会有 03/01 15:14