18

Pythonでインターフェースと抽象クラスに名前を付けるための規則は何ですか? PEP 8はこれについて議論していません。たとえば、Java では、多くの場合、インターフェースはI接頭辞を付けて命名されます。PHP (名前空間の前) では、抽象クラスは通常、_Abstract接尾辞を付けて命名されます。

(私は、Pythonists がインターフェイスに熱心ではないことを理解しています。おそらくこれが、このトピックについてあまりコンセンサスを見つけることができない理由です。しかし、インターフェイスと抽象クラスの使用法は私の質問ではありません。)

4

4 に答える 4

12

特にこれに対応していないPEP8を除いて、この点に関してコミュニティ全体の基準を認識していません。

私はあなたのチームが最も快適なことは何でもすることを提案しますが、何よりも一貫性があります。

于 2012-05-23T16:13:07.633 に答える
10

これを行うための最も「Pythonic」な方法については、番号の塔 (からnumbers)、コレクションの ABC (からcollections.abc)、またはその他のコア ABC (から) に目を向けます。importlib.abc

これからのコンセンサスは、それらをそのまま名前を付け、人間の理解にそれらを抽象的なものとして認識させることです。

于 2015-11-04T20:11:52.747 に答える
9

I接頭辞を付けてインターフェイスに名前を付けることは完全に受け入れられると思います。

例えば:

  • IFoo
  • IPublishable

数年前、私は Zope インターフェイスを使用していました。ほとんどのコードベースがこの規則を使用していることに気付きました。私たちのチームもそうでした。

IFoo私たちはvs. FooInterfaceorを好みましたIFooInterface

于 2012-05-23T17:17:36.417 に答える