1 / 10

Zope Interface

Zope Interface. —— hef 2011-01-09. 大纲. 接口简介 接口声明 接口实现. 接口简介. > 面向接口编程 interface 定义规范 class 编码实现 优点:1。便于程序规范化设计 2。便与团队协同开发 3。方便的代码复用,无需了解技术细节。 缺点:1。接口协同工作时,设计不良会出现难以发现的bug,因为你只遵循接口规范,不知道实现的技术细节。. 接口简介. > zope interface

alissa
Download Presentation

Zope Interface

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zope Interface ——hef 2011-01-09

  2. 大纲 • 接口简介 • 接口声明 • 接口实现

  3. 接口简介 > 面向接口编程 interface 定义规范 class 编码实现 优点:1。便于程序规范化设计 2。便与团队协同开发 3。方便的代码复用,无需了解技术细节。 缺点:1。接口协同工作时,设计不良会出现难以发现的bug,因为你只遵循接口规范,不知道实现的技术细节。

  4. 接口简介 > zope interface 在一些现代编程语言(比如Java、C#等)中,接口是语言本身直接提供的一个特性。由于Python不提供接口,但是我们可以通过继承zope.interface.Interface来实现接口的功能。

  5. 接口简介 接口是一类特殊的对象,它规范(并文档化)了所有“提供”这个接口的对象的外部行为。 一个接口通过如下方式来规范行为: - 在文档字符串里提供详细的文档 - 定义属性 - 不变量,也就是每个提供这个接口的对象所必须满足的条件

  6. 接口声明 接口从 zope.interface.Interface 继承而来.用 "class" 创建。在接口名字前面添加一个 I 前缀是一个很常见的习惯做法。虽然创建一个接口和创建一个类用的 都是“class”关键字,但接口不是类。 from zope.interface import Interface class IHello(Interface): def hello(name): """Say hello to the world""" >>>IHello <InterfaceClass __main__.IHello>

  7. 接口声明 zope.interface.Interface ------ Interface = InterfaceClass("Interface", __module__ = 'zope.interface') class InterfaceClass(Element, InterfaceBase, Specification): ...... Interface是InterfaceClass类的实例

  8. 接口声明 一个接口可以被用来声明某个特定对象属于一个特殊的类型。一个没有任何属性和方法的接口被称作标识接口 。 >>> from zope.interface import Interface >>> class ISpecialGuest(Interface): ... """A special guest""" 这个接口可以用来声明一个对象是一个特殊客人。

  9. 接口实现 class HelloComponent: implements(IHello) def hello(self, name): return "Hello%s!" % name 声明接口最通常的做法是在class中使用implements,当然一个类中也可以实现多个接口,implements(x,x,x,...),也可以在类体外使用 classImplements(cls,i1,i2...)使某个类实现某个或多个接口

  10. 接口实现 可以用几种方式来看看这个声明。 >>> IFoo.implementedBy(Foo) True 询问一个接口是否由一个对象提供 >>> foo = Foo() >>> IFoo.providedBy(foo) True

More Related