私はクラスを持っていますが、その中のすべてのメソッドはプライベートでなければなりません(フォーム__init__
とは別__str__
です)。すべてのメソッドを二重下線で表す必要がありますか、それとも悪い習慣と見なされますか?
Pythonのすべては公開されていると聞いています。それらをいつ使用するかは、自分で整理する必要があります。私はオブジェクト指向の高度な部分にはあまり興味がありませんが、これは私の頭に残っています。
—
ドラゴンズ
参考までに、名前のマングリングは、プライバシーのためではなく、一般的に使用される名前との衝突を回避するように設計されています。
—
2013年
@detlyの答えを正確に言うと、「一般的に使用される名前」ではなく、サブクラスで使用される名前です。「クラスプライベートメンバーには有効なユースケースがあるため(つまり、サブクラスで定義された名前と名前の名前の衝突を避けるため)、名前のマングリングと呼ばれるそのようなメカニズムのサポートは限られています。」docs.python.org/3/tutorial/classes.html#private-variables組み込み名との衝突を避けるために、末尾にアンダースコア(list_)を使用します。
—
Yaroslav Nikitenko