2016-05-02 2 views
1

できるだけ他の言語(C#JAVA、...)で"private"メソッド(2つのアンダースコアを使用)を作成するのが良いスタイルだと分かります。static Pythonには何か推奨はありますか?Python:可能であれば、プライベートクラスのメソッドを常に静的にしますか?

プライベートなので(私はそれらをユーティリティクラスに移動したくなく、パフォーマンスには関係しません)、私はデコレータで自分のコードを乱雑にしないようにしたいので、スタティックにしないでください。一方、スタティックコードアナライザは私にそうするよう指示します(そして私は "Pythonic"の方法でコードを書いています)。

+0

私の個人的な意見では、必要な場合を除いて、静的クラスメソッドを使用しないでください。単純にする。呼び出されるメソッドが非常に小さく、プログラム全体を大幅に遅くすることが証明されていない限り、小さなビットをすべて最適化することは意味がありません。 –

答えて

1

短い答えは、決してPythonで静的メソッドを使うべきではないということです。彼らはadded by mistakeでした。

私はクラスメソッドを実装することを意図しましたが、最初は を理解せず、誤って静的メソッドを実装しました。 - Guido van Rossum

ほとんどの場合、クラスメソッドまたはインスタンスメソッドを使用して目的を達成できます。

なぜPythonの静的メソッドがほとんど役に立ちませんかhere

+0

この回答をお寄せいただきありがとうございます(役に立つリンクを含む)! – charlyinalbon

0

「私的方法」のようなものはありません。すべての方法は公開されています。メソッドが公に使用されることを意図していないことを伝える唯一のことは、名前がアンダースコアで始まることです。

メソッドがself(クラスのインスタンス)から何も参照していない場合、それらのメソッドがアプリケーションのメモリ使用量を最適化するように静的にすることができます。

+0

プライベートとパブリックメソッドについての発言をありがとう。それで、私はその問題を明らかにした。 – charlyinalbon

+0

あなたが達成したいと思うものはあまり明確ではありません。静的コードアナライザーからの警告を無視するよりも静的にしたくない場合は、 – sc3w

関連する問題