Python修道仙の道--クラス変数のインスタンスメソッドとクラスメソッドの呼び出し方法

732 ワード

クラス変数の学習中に次の問題が発生しました.
  • クラス変数の呼び出し方法はありますか?
  • 彼らの間にはどんな違いがありますか?

  • 結論を見てからコードを見る:一、呼び出し方法
  • インスタンスメソッド:1.クラス名.クラス変数呼び出し2.「self.クラス変数」呼び出し
  • クラスメソッド:1.クラス名.クラス変数呼び出し2.「cls.クラス変数」呼び出し2、区別まずクラス変数とインスタンス変数のそれぞれに1つのコピーがあることを理解しなければならない.つまり、インスタンスメソッドでクラス変数を呼び出すのは、実際にはインスタンス変数のコピーにクラス変数をコピーしたことを意味する.すなわち、新しい変数(ありがとうございます)が作成されたことを意味し、selfを通じて説明する.クラス変数はクラス変数を変更し、クラス変数は影響を受けずにクラスメソッドを呼び出すか、クラス変数を呼び出すことができる
  • である.
    次はコードを貼ります(#後は実行結果)
    class t:
        e =12
        def add(self):
            self.e = self.e + 12
            print(self.e)	#24
        @classmethod
        def power(cls,x):
            cls.e = t.e*x
    
    
    T =t()
    T.add()
    print(t.e)	#12
    T.power(2)
    print(t.e)	#24
    

    ps:文章が下手なところは、皆さんのご指摘を歓迎します.