为什么python允许在抽象方法中包含代码?我知道我们可以通过super调用该代码,但是我想不出为什么我希望我的抽象方法包含代码。
最佳答案
这在abc
module docs中有解释:
注意:与Java抽象方法不同,这些抽象方法可能有一个实现。这个实现可以通过覆盖它的类中的super()
机制调用。在使用协作多重继承的框架中,这可以作为超级调用的终点。
(增加了重点。)
在引入ABCs的PEP中也有解释,您可以按照PEP到python dev-and-ideas线程的链接来更详细地讨论这个决定。(这是在开放环境中开发语言的优势之一;对于2.2之后添加的任何内容,您不必对这样的问题感到好奇,只需查看整个讨论即可。)