利用類的新功能。具有多個數據輸入的類
如果我有3個不同的文件爲這樣:
#test1.txt:
a 100 xxx
b 200 fff
a 200 xxx
c 500 fff
a 200 www
test2.txt:
123 msg1 data2
123 msg1 data3
125 msg1 data2
123 msg2 data5
128 msg3 data2
test3.txt:
jan 5 79
jan 5 80
dec 5 79
dec 12 79
feb 5 80
,我想填充在1類中的所有數據,同時通過文件迭代,這是正確的做法?
我有困難搞清楚如何填充所有的數據,而不會覆蓋和提取基於任何單個參數。
class DInput:
def set_f0(self, f0):
self.f0=f0
self.f1,f2,f3,f4,f5,f6,f7,f8=[]
def add_f1(self, f1):
self.f1.append(f1)
def add_f2(self, f2):
self.f2.append(f2)
def add_f3(self, f3):
self.f3.append(f3)
def add_f4(self, f4):
self.f4.append(f4)
def add_f5(self, f5):
self.f5.append(f5)
def add_f6(self, f6):
self.f6.append(f6)
def add_f7(self, f7):
self.f7.append(f7)
def add_f8(self, f8):
self.f8.append(f8)
call = DInput()
with open('test1.txt','r') as file1, open('test2.txt','r') as file2, open('test3.txt','r') as file3:
for line in file1:
f0,f1,f2=line.split()
call.set_f0(f0)
call.add_f1(f1)
call.add_f2(f2)
for line in file2:
f3,f4,f5=line.split()
call.add_f3(f3)
call.add_f4(f4)
call.add_f5(f5)
for line in file3:
f6,f7,f8=line.split()
call.add_f6(f6)
call.add_f7(f7)
call.add_f8(f8)
'self.f1,F2,F3,F4, f5,f6,f7,f8 = []' 那不行。它只會將'f1'設置爲對象變量。其餘的都是本地的。 – Irfy 2012-02-15 23:34:25
您可以在填充後告訴我們您想要對數據做什麼嗎?什麼是大局,數據將在以後如何使用?你的數據結構很可能是錯誤的,所以如何解析數據的問題對你無能爲力。 – Irfy 2012-02-15 23:43:44
不確定你想用'set_f0'做什麼,因爲你在'for file1'循環的每一次迭代中覆蓋'f0'。請解釋你正在嘗試做什麼。 – Edwin 2012-02-16 00:08:20