python - Python中的"Interfaces": Yea or Nay?

标签 python documentation interface coding-style

所以我在静态领域花费了大量时间后,开始使用 Python 进行项目。我见过一些制作“接口(interface)”的项目,它们实际上只是没有任何实现的类。以前,我会 mock 这个想法并忽略这些项目的那一部分。但现在,我开始接受这个想法了。

我们很清楚,Python 中的接口(interface)看起来像这样:

class ISomething(object):
    def some_method():
        pass
    def some_other_method(some_argument):
        pass

请注意,您没有将 self 传递给任何方法,因此需要重写该方法才能被调用。我认为这是一种很好的文档和完整性测试形式。

那么这里的每个人对这个想法有什么看法?我是否被我做过的所有 C# 编程洗脑了,还是这是个好主意?

最佳答案

我不确定这有什么意义。接口(interface)(无论如何都是这种形式)主要是为了解决缺乏多重继承的问题。但是 Python 有 MI,那为什么不直接做一个抽象类呢?

class Something(object):
    def some_method(self):
        raise NotImplementedError()
    def some_other_method(self, some_argument):
        raise NotImplementedError()

关于python - Python中的"Interfaces": Yea or Nay?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/552058/

相关文章:

python - SCons 问题 - 不理解变量类

python - 关于Python Tornado阻塞的困惑

python - PYODBC Fetchmany 到 csv 仅输出 header

python - Python Keras 深度学习包的数据类型是什么?

java - 如何让 Java API Javadocs 出现在 Ubuntu 的 Eclipse 中

documentation - Doxygen : Display warning for undocumented method

python - 从文档字符串生成 DITA xml

java - 在这种情况下我应该使用继承还是接口(interface)?

iphone - cocoa 界面风格

dynamic - 使用 F# 在类/接口(interface)中动态定义多个成员