Python种staticmethod和classmethod有什么区别,具体用法呢。什么时候用。
黄舟
黄舟 2017-04-17 16:25:00
0
6
417
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(6)
迷茫

インスタンスを作成したくないため静的メソッドは宣言されていませんが、メソッドがインスタンス自体のデータを変更しないことが宣言されています。

classmethod は、インスタンスを作成するのではなく、クラス自体を操作するため、宣言されていません (cls を渡した後、独自のプロパティとメソッドを操作できます)。

これはあくまで私の個人的な意見ですので、ご参考までに。

いいねを押す +0
迷茫

少し簡単に理解すると
役に立つかもしれません

Python クラスの @staticmethod と @classmethod についての簡単な説明

いいねを押す +0
大家讲道理

直感的に、classmethod と staticmethod の関数シグネチャは異なります。一方にはパラメーターがあり、もう一方にはパラメーターがありません。
はすべて Python デコレータです。クラスメソッドではパラメータは cls である必要はなく、任意の名前付き変数を使用できることに注意してください。親クラスと子クラスが関与していない場合、両者の動作は同じように見えますが、親クラスと子クラスが設計されている場合、クラスメソッドは呼び出し元の子クラスのオブジェクトを決定できます

リーリー
いいねを押す +0
Ty80

静的メソッド、クラスメソッド、および通常の内部メソッドの違いは、使用方法の微妙な違いだけでなく、コードの分離にもあります。 static にはクラスやインスタンスの情報は必要ありません。 class にはクラス情報が必要です。 通常のメソッドにはインスタンス情報が必要です。これらの詳細にはあまり注意を払わないでください。分からない時は普通に書いて下さい。必要を感じたときにどちらに切り替えるべきかがわかります。

いいねを押す +0
巴扎黑

リーリー

いいねを押す +0
阿神

オブジェクト指向言語では、static は通常、変更されたメソッドまたは変数がインスタンスに属さず、クラスに属していることを意味します。

静的メソッドの役割: インスタンスを構築せずにメソッドを呼び出す必要がある場合、このメソッドを静的として定義する必要があります。静的メソッドは override にすることができず、ほとんどの OO 機能を備えていません。実際には、静的メソッドには手続き型言語の概念があります。

Python コードを書いた私自身の経験に基づくと、たとえば、静的メソッドと関数のどちらを選択すればよいのかわかりません。したがって、OO ではなく Python 独自の機能を学ぶことに重点を置くことをお勧めします。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!