为什么Python允许抽象方法拥有代码?

时间:2015-04-28 11:13:52

标签: python abstract

为什么python允许在抽象方法中包含代码?我知道我们可以通过super调用该代码,但是我无法想到为什么我希望我的抽象方法在其中包含代码。

1 个答案:

答案 0 :(得分:7)

abc module docs

中对此进行了解释
  

注意:与Java抽象方法不同,这些抽象方法可能有一个实现。可以通过覆盖它的类中的super()机制来调用此实现。 这可以作为使用协作多重继承的框架中超级调用的终点。

(强调补充。)

在PEP中也解释了它引入了ABCs,您可以关注从PEP到python-dev和-ideas线程的链接,它们更详细地讨论了这个决定。 (这是一种广泛开发的语言的优点之一;对于在2.2之后添加的任何内容,你不必对这样的问题感到疑惑,你可以只查看整个的讨论。)