2016-12-30 59 views
-1

我解決一類項目,我遇到這個問題 這裏(當我追加新對象好像所有元素的數組是在同一個對象指向)是我的代碼數組元素都指向同一個對象無故

import os 
from Process import Process 

processes = [] 

# Read the file 
file = open("file.txt","r") 
# Read the lines 
for line in file.readlines() : 
    # split the line components 
    process = line.split(";") 
    global processes 
    # append a new element to the array 
    pr = Process(process[0], process[1], "Ready") 
    # find how many elements in the line to loop through 
    process_len = len(process) 
    # loop through the line elements 
    for element in range(2,process_len) : 
     # if it's a CPU 
     if process[element].find("CPU") == 0: 
      s = process[element].split(":") 
      pr.add_cpu(s[1]) 
     # if it's an IO 
     elif process[element].find("IO") == 0: 
      s = process[element].split(":") 
      pr.add_io(s[1]) 
    #  End of elif 
    processes.append(pr) 
file.close() 
print "-------------------------- \n"; 
for p in processes : 
    print p.getcpu() 

這裏,我從讀文件:

1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35;IO:5;CPU:1 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35 
1;500;CPU:20;IO:5;CPU:10;IO:15; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35;IO:5;CPU:1 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35 
1;500;CPU:20;IO:5;CPU:10;IO:15; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35;IO:5;CPU:1 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35 
1;500;CPU:20;IO:5;CPU:10;IO:15; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35;IO:5;CPU:1 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35 
1;500;CPU:20;IO:5;CPU:10;IO:15; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35;IO:5;CPU:1 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35 
1;500;CPU:20;IO:5;CPU:10;IO:15; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35;IO:5;CPU:1 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35 
1;500;CPU:20;IO:5;CPU:10;IO:15; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35;IO:5;CPU:1 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11; 
1;500;CPU:20;IO:5;CPU:10;IO:15;CPU:30;IO:11;CPU:35 
1;500;CPU:20;IO:5;CPU:10;IO:15; 

,這裏是輸出:

-------------------------- 

['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 
['20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10', '20', '10', '30', '35', '1\n', '20', '10', '30', '20', '10', '30', '35\n', '20', '10'] 

Process finished with exit code 0 

我認爲這個問題是我要創建同一個對象的新引用和我一直把它們添加到數組作爲新的對象,但我不知道如何確保,如果是這樣的話還是我錯了如果是這種情況,我該如何解決這個問題?

編輯: 下面是該過程類:

class Process : 

    pid = 0; 
    pat = 0; 
    wt = 0; 
    global ion; 
    ion = 0; 
    global cpun; 
    cpun = 0; 
    global pState; 
    pState = "Ready"; 
    global pNature; 
    pNature = "I\O bound"; 
    global turnAroundTime; 
    turnAroundTime = 0; 
    global cpu; 
    cpu = [] 
    global io; 
    io = [] 

    # constructor 
    def __init__(self,id,at,state) : 
     pid = id; 
     pat = at; 
     pState = state; 

    # define the process nature 
    @staticmethod 
    def nature() : 
     global pNature; 
     global ion; 
     global cpun; 
     if ion > cpun : 
      pNature = "I\O bound"; 
     else : 
      pNature = "CPU bound"; 

    # add new cpu 
    @staticmethod 
    def add_cpu(cp) : 
     cpu.append(cp); 
     global cpun; 

     cpun = cpun + int(cp); 

    # add new io 
    @staticmethod 
    def add_io(i) : 
     io.append(i); 
     global ion; 
     ion = ion + int(i); 

    # get the cpu array size 
    @staticmethod 
    def get_cpu_size() : 
     return len(cpu); 

     # get the IO array size 
    @staticmethod 
    def get_io_size() : 
     return len(io) 

    # returns the cpu array 
    @staticmethod 
    def getcpu(): 
     return cpu 
+0

@凱丹格我得到相同的輸出 – keloa

+1

我保證它不是沒有原因的。但是你需要顯示Process類的代碼。 –

+1

BTW,做'在全球範圍內的全球processes'是毫無意義的。請參閱[文檔](https://docs.python.org/3/reference/simple_stmts.html#grammar-token-global_stmt) –

回答

1

類過程的變量是共同的PR的各instansiation。所以你每次都在壓制價值。

import os 

processes = [] 

class Process(): 
    # constructor 
    def __init__(self, id, at, state): 
     self.pid = id 
     self.pat = at 
     self.pState = state 
     self.wt = 0 
     self.ion = 0 
     self.cpun = 0 
     self.pNature = "I\O bound" 
     self.turnAroundTime = 0 
     self.cpu = [] 
     self.io = [] 

    # define the process nature 
    def nature(self): 
     if self.ion > self.cpun: 
      self.pNature = "I\O bound" 
     else: 
      self.pNature = "CPU bound" 

    # add new cpu 
    def add_cpu(self, cp): 
     self.cpu.append(cp) 
     self.cpun = self.cpun + int(cp) 

    # add new io 
    def add_io(self, i): 
     self.io.append(i) 
     self.ion = self.ion + int(i) 

    # get the cpu array size 
    def get_cpu_size(self): 
     return len(self.cpu) 

    # get the IO array size 
    def get_io_size(self): 
     return len(self.io) 

    # returns the cpu array 
    def getcpu(self): 
     return self.cpu 


# Read the file 
file = open("file.txt", "r") 
# Read the lines 
for line in file.readlines(): 
    # split the line components 
    process = line.split(";") 
    # append a new element to the array 
    pr = Process(process[0], process[1], "Ready") 
    # find how many elements in the line to loop through 
    process_len = len(process) 
    # loop through the line elements 
    for element in range(2, process_len): 
     # if it's a CPU 
     if process[element].find("CPU") == 0: 
      s = process[element].split(":") 
      pr.add_cpu(s[1]) 
     # if it's an IO 
     elif process[element].find("IO") == 0: 
      s = process[element].split(":") 
      pr.add_io(s[1]) 
    #  End of elif 
    processes.append(pr) 
file.close() 
print("-------------------------- \n") 
for p in processes: 
    print(p.getcpu()) 

PS:不要使用;在Python。並嘗試使用Pep8。這是一個Python風格指南。

+0

職能是分開的每個對象,但我會後你期望的輸出是什麼類 – keloa

+0

? – Wilfried

+0

這工作!謝謝 – keloa

相關問題