質問: Sample() sample2.add_c_list("データ2") for item_data in sample1.c_list: print(item_data, end=" ") ```
回答: ご質問のコメントにある重複候補のリンクとは別の回答が端的で分かりやすく感じました。 類似質問の回答で頻出するPythonチュートリアルのクラスとインスタンス変数も良くまとまっていますので、ご一読をお勧めします。 class直下で宣言された変数は**クラス変数**と呼ばれ、全てのインスタンスで値が共有されます。 class直下で宣言**されてない**self変数は**インスタンス変数**と呼ばれ、個別のインスタンスごとに別々の値を持ちます。 下記のサンプルコードで、クラス変数とインスタンス変数のリストの値を可視化してみました。 **サンプルコード:** ``` class Sample: c_list = [] #クラス変数 def __init__(self): self.i_list = [] #インスタンス変数 def add_list(self,data): self.c_list.append(data) self.i_list.append(data) sample1 = Sample() sample1.add_list("データ1") sample2 = Sample() sample2.add_list("データ2") print("sample1.c_list:", ",".join(sample1.c_list)) print("sample2.c_list:", ",".join(sample2.c_list)) print("sample1.i_list:", ",".join(sample1.i_list)) print("sample2.i_list:", ",".join(sample2.i_list)) ``` **出力結果:** ``` sample1.c_list: データ1,データ2 sample2.c_list: データ1,データ2 sample1.i_list: データ1 sample2.i_list: データ2 ```