1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】クラス変数の妙

Last updated at Posted at 2021-05-25

はじめに

Pythonを勉強していて、妙を感じるところがあったので備忘録として残そうと思いました。

クラス変数とインスタンス変数

クラス変数はインスタンスを生成してもすべてのインスタンスで値を共有してしまう。
共有したくない場合は例のようにインスタンス変数を使用しないといけない。

クラス変数
class Instance:
    values = [] # クラス変数

    def add_list(self, value):
        self.values.append(value)

ins1 = Instance()
ins1.add_list("データ1")
ins2 = Instance()
ins2.add_list("データ2")
print(ins1.values)

# 結果
# ['データ1', 'データ2']
インスタンス変数
class Instance:
    def __init__(self):
        self.values = [] # インスタンス変数

    def add_list(self, value):
        self.values.append(value)

ins1 = Instance()
ins1.add_list("データ1")
ins2 = Instance()
ins2.add_list("データ2")
print(ins1.values)

# 結果
# ['データ1']
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?