接口和抽象类的Python命名约定?

时间:2012-05-23 16:08:10

标签: python naming-conventions

在Python中命名接口和抽象类的约定是什么? PEP 8没有讨论这个问题。例如,在Java中,接口通常以“I”前缀命名。在PHP(名称空间之前)中,抽象类通常以“_Abstract”后缀命名。

(我意识到Python主义者并不热衷于接口,也许这就是为什么我在这个主题上找不到多少共识的原因。但是接口和抽象类的使用不是我的问题。)

3 个答案:

答案 0 :(得分:7)

除了PEP8之外,我不知道在这方面有任何社区范围的标准,但没有具体解决这个问题。我建议你做任何你最熟悉的团队,但最重要的是是一致的

答案 1 :(得分:5)

我认为命名一个带有I前缀的接口是完全可以接受的。

e.g:

IFoo

IPublishable

几年前我使用了Zope Interfaces。我注意到大多数代码库使用了这个约定。我们的团队也做了。

我们更喜欢IFoo与FooInterface或IFooInterface

答案 2 :(得分:1)

我会看到数字塔(来自numbers),集合ABCs(来自collections.abc),或其他核心ABC(例如importlib.abc)最为“Pythonic” “这样做的方法。

这样做的共识是将它们按原样命名,让人类理解将它们视为抽象的。