私は、言語に「開発者を保護する」機能が組み込まれている C# のバックグラウンドを持っています。私は、Python が「ここではすべて大人」のアプローチを取り、開発者に思慮深く慎重にコーディングする責任を負わせていることを理解しています。
そうは言っても、Python は、プライベート インスタンス変数の先頭にアンダースコアなどの規則を提案しています。私の質問は、クラスをdocstringで指定する以外に、クラスを抽象としてマークするための特定の規則はありますか? 抽象クラスの命名規則について言及しているPythonスタイルガイドには特に何も見たことがありません。
これまでのところ3つのオプションを考えることができますが、それらが良いアイデアかどうかはわかりません:
- クラスの上の docstring で指定します (見落とされる可能性があります)。
- クラス名の先頭にアンダースコアを使用します (これが普遍的に理解されているかどうかは不明です)
- エラー
def __init__(self):
を発生させる抽象クラスでメソッドを作成します(基本コンストラクターを呼び出したい場合のように、これが継承に悪影響を与えるかどうかは不明です)
これらのいずれかが適切なオプションですか、それともより良いオプションがありますか? 他の開発者がそれが抽象的であることを知っていることを確認したいだけなので、インスタンス化しようとすると、奇妙な動作の責任を受け入れる必要があります。