Python でより一般的なメソッド タイプは、インスタンス メソッドとクラス メソッドです。それらはどのように定義されていますか?なんと呼びますか?それらの違いと機能は何ですか?以下を参照してください。
#まず、これらのメソッドをクラス内に定義します。まず、定義と呼び出し方法について簡単に説明します。 (追記: インスタンス オブジェクトには最も大きな権限があります。)
インスタンス メソッド (推奨学習: Python ビデオ チュートリアル)
定義: 最初のパラメーター Itパラメータ名は通常「self」であることが合意されており、これを通じてインスタンスの属性とメソッドを渡すことができます (クラスの属性とメソッドも渡すことができます);
Call: インスタンス オブジェクトによってのみ呼び出すことができます。
クラス メソッド
定義: デコレータ @classmethod を使用します。最初のパラメータは現在のクラス オブジェクトである必要があります。パラメータ名は通常 "cls" であることが合意されており、これを通じてクラスの属性とメソッドが渡されます (インスタンスの属性とメソッドは渡せません)。 ##Call: インスタンス オブジェクトとクラス オブジェクトを呼び出すことができます。
インスタンス メソッド要するに、インスタンス メソッドは、クラスのインスタンスによって使用できるメソッドです。ここではあまり説明がありません。
クラス メソッドデコレータ @classmethod を使用します。
原則として、クラスメソッドはクラス自体をオブジェクトとして操作するメソッドです。メソッドがあり、クラス自体をオブジェクトとして使用してこのメソッドを呼び出す方が論理的に合理的であると仮定すると、このメソッドはクラス メソッドとして定義できます。また、継承が必要な場合はクラスメソッドとして定義することもできます。
学生クラスとクラス クラスがあるとします。実現したい機能は次のとおりです:
クラス サイズを増やす操作を実行し、クラス メンバーの総数を取得します。
Students クラスはクラス class を継承します。生徒がインスタンス化されるたびに、クラス内の生徒の数が増加する可能性があります。
最後に、いくつかの生徒を定義し、生徒の総数を取得したいと思います。クラスの人々。
class ClassTest(object): __num = 0 @classmethod def addNum(cls): cls.__num += 1 @classmethod def getNum(cls): return cls.__num # 这里我用到魔术方法__new__,主要是为了在创建实例的时候调用累加方法。 def __new__(self): ClassTest.addNum() return super(ClassTest, self).__new__(self) class Student(ClassTest): def __init__(self): self.name = '' a = Student() b = Student() print(ClassTest.getNum())
Python 関連の技術記事をさらに詳しく知りたい場合は、
Python チュートリアル以上がPythonのクラスメソッドとインスタンスメソッドの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。