Python - クラス - クラス変数(static変数)
公開日:2019-03-04 更新日:2019-05-29
[Python]
1. 概要
クラス変数(static変数)の使い方です。
クラス変数は、クラス自体に保持される変数です。
それに対してインスタンス変数は、インスタンス毎に保持され、それぞれ異なる変数として扱われます。
クラス変数は、変数名の前にクラス名を付けて使用します。
クラスメソッド内であれば、第1引数の変数(cls)を付けても使用できます。
@classmethod の有無によってインスタンス変数として扱われたり、
何も付けないとローカル変数として扱われるため要注意です。
クラス変数は、クラス自体に保持される変数です。
それに対してインスタンス変数は、インスタンス毎に保持され、それぞれ異なる変数として扱われます。
クラス変数は、変数名の前にクラス名を付けて使用します。
クラスメソッド内であれば、第1引数の変数(cls)を付けても使用できます。
@classmethod の有無によってインスタンス変数として扱われたり、
何も付けないとローカル変数として扱われるため要注意です。
2.1 サンプル
クラス変数は、インスタンスを生成せずに使用できます。
class Car:
note = "車"
print(Car.note)
Car.note = "カー"
print(Car.note)
車
カー
2.2 サンプル
クラスメソッドでは、第1引数の cls を使ってクラス変数を使用できます。
class Car:
note = "車"
@classmethod
def get_note(cls):
return cls.note
@classmethod
def set_note(cls, value):
cls.note = value
def set_note2(self, value):
Car.note = value
print(Car.note)
print(Car.get_note())
Car.set_note("カー")
print(Car.note)
print(Car.get_note())
car = Car()
car.set_note("かぁ")
print(Car.note)
車
車
カー
カー
かぁ