pythonクラスの備忘録
pythonクラスにおいて、クラス変数とインスタンス変数の違いについて説明する。
まず、以下のようなクラスを定義する。
class ClassVal: x = "ClassVal" class InstanceVal: def __init__(self): self.x = "InstanceVal" cls_Val = ClassVal() ins_Val = InstanceVal()
この時、インスタンス化されたcls_Valのクラス変数、ins_Valのインスタンス変数はいずれも表示できる
print(cls_Val.x) # ClassVal print(ins_Val.x) # InstanceVal
一方、ClassValのクラス変数は表示できるが、InstanceValのインスタンス変数は表示出来ない
print(ClassVal.x) # class変数に設定されているので、表示できる print(InstanceVal.x) # instance化しないと表示できないため、エラーとなる