2012-05-23 47 views
4

在Python中命名接口和抽象類的約定是什麼? PEP 8不討論這一點。例如,在Java中,接口通常以「I」前綴命名。在PHP中(名稱空間之前),抽象類通常用「_Abstract」後綴命名。接口和抽象類的Python命名約定?

(我認識到,Pythonists並不熱衷於接口,也許這就是爲什麼我不能找到有關這個主題的許多共識的原因。但是,接口和抽象類的使用是不是我的問題。)

+0

它們與典型的類相同。據我所知,沒有任何額外的規則。 –

+0

自從2.2開始,我一直在使用Python進行編程,而且我還沒有看到任何一種廣泛使用的約定。 – NPE

+0

可能的重複:http://stackoverflow.com/questions/7809287/python-naming-conventions-for-attributes-and-methods-meant-to-be-overwritten – Hannele

回答

3

我認爲用I前綴命名接口是完全可以接受的。

例如爲:

IFoo 

IPublishable 

幾年前,我使用Zope的接口。我注意到大多數代碼庫都使用這個約定。我們的團隊也做到了。

我們首選的IFoo與FooInterface或IFooInterface

5

除了PEP8之外,我不知道這方面的任何社區範圍的標準,但沒有具體說明這一點。我會建議你做任何你最喜歡的球隊,但最重要的是必須符合

1

我將目光投向號塔(來自numbers),收集基本知識(從collections.abc),或其他核心基本知識(如importlib.abc)爲最「 Pythonic「的方式來做到這一點。

由此得出的一致意見是僅僅將它們命名爲現狀,並讓人類的理解將它們視爲抽象。