我正在嘗試為類值創建一個物件陣列。但是所有物件的值變得相等。
import numpy as np
class value:
def store(self,jobid,deadline,profit):
self.job = jobid
self.deadline = deadline
self.profit = profit
def initialize(self):
job = input()
deadline = int(input())
profit= int(input())
self.store(job,deadline,profit)
def disp(arr,n):
for i in range(n):
print(str(arr[i].job) " " str(arr[i].deadline) " " str(arr[i].profit))
n=2
arr = np.array([None for i in range(n)])
val = value()
for i in range(n):
val.initialize()
arr[i]=val
disp(arr,n)
輸入
A
2
3
B
2
1
預期產出
A 2 3
B 2 1
輸出我得到
B 2 1
B 2 1
我做錯了什么,什么可以解決它?
uj5u.com熱心網友回復:
您只創建了類的一個實體,并且最初呼叫value(). 呼叫initialize并store修改該實體的內容。
然后將相同的實體分配給所有陣列元素。
要解決此問題,您需要通過將 放入val = value()回圈內來創建新實體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/345537.html
