はじめての質問になるので、至らない点がありましたら申し訳ございません。
問題とは関係ないので、インポート文は省略しています。
Python
1//クラス定義 2Class User: 3 def __init__(self,t,w,color): 4 self.t=t 5 self.w=w 6 self.color=color 7 8 def next(self): 9 self.t+=5 10 self.w+=2 11//インスタンスの配列 12list1=[User(random(),random(),'y') for i in range(5)] 13//一部のcolorを変更 14list1[0].color='g' 15list1[3].color='g' 16 17for i in range(5): 18//colorがyのものだけにnext()を実施※問題点 19 if(list1[i].color=='y'): 20 list1[i].next() 21
問題点は、colorが'g'のインスタンスもtとwの値が更新されてしまう点です。
当たり前ですが、問題点のif文中でlist1[i].colorをprintすると、'y'だけプリントされます。
ちなみに、色を'g'に変更するかどうから実際にはランダムで決定していますが、質問の意図と関係ないため省略しています。
Classの仕様をまだ理解しきれていないので、クラス内の関数が呼び出される条件に不備があるかもしれません。
環境はAnacondaの最新版で、jupyter labを用いています。
本当に困っているので、回答よろしくお願いいたします。
コメントを # にとしくれないとそのまま実行できなくて不便です……
単純に「実行しているファイルを貼ってない」と疑ってしまいます。
あるいは「実際に実行しているファイルが違うもの」の可能性を疑った方がいいのでは。