静的メソッドとクラスメソッド
インスタンスメソッド/オブジェクトメソッドインスタンスメソッドまたはオブジェクトメソッドは、クラスで定義された通常のメソッドが
インスタンス化された後にのみ使用できるメソッドを指します。このメソッドの最初の仮パラメーターは、オブジェクト自体を受け取る必要があります
静的メソッド
1形式:@staticmethodをメソッドに追加します。2
.パラメーター:静的メソッドはパラメーターを持つことも、パラメーターなしにすることもできます。3
.アプリケーションシナリオ:通常、クラスオブジェクトとインスタンスオブジェクトに依存しないコードに使用されます
。またはオブジェクト名。静的メソッド名)
クラス犬: @Property DEF (自己)EAT: 印刷(「骨を食べる」) #Dog.eat()#通常の方法のみを使用したオブジェクトの方法で呼び出すことができる 犬= 犬を() dog.eat #は骨を食べます
#静的メソッドは、任意のクラスまたはインスタンスのプロパティおよび方法において使用することができない クラス:ゲーム @staticmethod DEF show_menu(X-): プリント(X-) 印刷(「ボタン1を起動する」) 印刷(「一時停止ボタン2 」) 印刷(「終了ボタン3 " ) #G =ゲーム() #g.show_menu() Game.show_menu(2 ) #2 #スタートボタン1 #一時停止ボタン2 #終了ボタン3
クラスメソッド
インスタンス化する必要はありません。クラスを介してメソッドを直接呼び出すことができますが、メソッドの最初のパラメーターはクラス自体を引き継ぐ必要があり
ます1. @classmethodを
メソッドに追加します2.メソッドのパラメーターはclsまたは他の名前ですが、デフォルトは通常clsです
3.clsはクラスオブジェクトを指します
。4。アプリケーションのシナリオ:メソッドに静的プロパティのみが含まれる場合、クラスメソッドを使用できます(クラスメソッドはクラスプロパティの変更に使用されます)
5.オブジェクト名を使用できます。クラスメソッド名。またはクラス名。クラスメソッド名
クラス人: 役割 = 「ヒト」 @classmethod DEFテスト(CLS)を: #は、最初の引数は(属性およびメソッドがインスタンスを渡すことはできません)CLSクラスを渡すことによって、現在のクラスのオブジェクト、プロパティおよびメソッドでなければならない プリント(cls.role) 印刷(" ---- ----試験における" ) #Person.test() P1 = 人() p1.test() #の人間 #---- ----テスト中