我很久以前就读过this post了,我试图创建自己的小例子:
class IExample(Interface):
""" An object that serves as an Example."""
class IExamp(IExample):
""" Examp object representing the current state of Example."""
def set_state(state):
""" Sets the state of Example."""
def get_state():
""" Gets the state of Example."""
class Example():
def __init__(self, state=0):
self.state = state
class Examp(Example):
def __init__(self, state=0):
Example.__init__(self, state)
def set_state(self, state):
self.state = state
def get_state(self):
return self.state
e = Examp()
print(e.get_state())
我得到一个错误(对于许多老式的Python程序员来说应该是显而易见的,但对我来说不是这样,因为我在2012年学过Python或其他什么)。
Traceback (most recent call last):
File "python", line 1, in <module>
NameError: name 'Interface' is not defined
当我在Google上键入“Python 3.4 Interface”时,我获得了十万个与图形用户界面编程相关的链接,而不是Interfaces(我也在Python文档上搜索过,而且没有任何关于它的内容)。
那么,今天的Python如何用于文档目的的接口?他们这个概念是如此深刻以至于没有人能找到任何关于它的东西吗?它是旧的python版本中丢失的东西吗?如果是这样的话,为什么它会“掉线”?在某个地方有关于它的“官方”帖子吗?人们是否真的在Python 今天中使用Interfaces进行文档编制?如果他们这样做,他们如何呢?
答案 0 :(得分:3)
Interface
类来自zope.interface
模块,它解释了为什么你没有在官方文档中找到它。
问题是,Zope不再使用 了(至少,不是很多新项目)。你仍会在遗留代码中看到它,但不是很多新代码。
如果您想坚持使用Python stdlib源代码,您可以将abstract base classes用于类似目的。
但实际上,Python代码中的接口根本不再使用。