在Python中命名接口和抽象類的約定是什麼? PEP 8不討論這一點。例如,在Java中,接口通常以「I」前綴命名。在PHP中(名稱空間之前),抽象類通常用「_Abstract」後綴命名。接口和抽象類的Python命名約定?
(我認識到,Pythonists並不熱衷於接口,也許這就是爲什麼我不能找到有關這個主題的許多共識的原因。但是,接口和抽象類的使用是不是我的問題。)
在Python中命名接口和抽象類的約定是什麼? PEP 8不討論這一點。例如,在Java中,接口通常以「I」前綴命名。在PHP中(名稱空間之前),抽象類通常用「_Abstract」後綴命名。接口和抽象類的Python命名約定?
(我認識到,Pythonists並不熱衷於接口,也許這就是爲什麼我不能找到有關這個主題的許多共識的原因。但是,接口和抽象類的使用是不是我的問題。)
我認爲用I
前綴命名接口是完全可以接受的。
例如爲:
IFoo
IPublishable
幾年前,我使用Zope的接口。我注意到大多數代碼庫都使用這個約定。我們的團隊也做到了。
我們首選的IFoo與FooInterface或IFooInterface
除了PEP8之外,我不知道這方面的任何社區範圍的標準,但沒有具體說明這一點。我會建議你做任何你最喜歡的球隊,但最重要的是必須符合。
我將目光投向號塔(來自numbers
),收集基本知識(從collections.abc
),或其他核心基本知識(如importlib.abc
)爲最「 Pythonic「的方式來做到這一點。
由此得出的一致意見是僅僅將它們命名爲現狀,並讓人類的理解將它們視爲抽象。
它們與典型的類相同。據我所知,沒有任何額外的規則。 –
自從2.2開始,我一直在使用Python進行編程,而且我還沒有看到任何一種廣泛使用的約定。 – NPE
可能的重複:http://stackoverflow.com/questions/7809287/python-naming-conventions-for-attributes-and-methods-meant-to-be-overwritten – Hannele