pythonでclassを作ってる最中に疑問に思ったので質問です。
クラス変数、インスタンス変数の考え方はこんな感じで良いのでしょうか。
・関数(def)の中でself.を着けない変数は、関数終了時に破棄される
・クラス変数名と、インスタンス変数名が同じ場合、呼び出し元で変数を直接コールする時
インスタンス変数が優先される。
例:
class test1(): class_hensu = 1 def inst1(self): self.class_hensu = 'a' def inst2(self): inst2_hensu = 2 ← selfを付けていないためinst1が終了した時点で破棄される? print(inst2_hensu) if __name__ == '__main__': test = test1() print(test.class_hensu) # クラス変数を表示(1が表示される) test.inst1() # class_hensuのインスタンス変数を作成 print(test.class_hensu) # インスタンス変数を表示(aが表示される) test.inst2() # 関数終了時にinst1_hensuは破棄される print(test.inst2_hensu) # 変数が無いためエラーとなる
回答3件
あなたの回答
tips
プレビュー