2014-11-23 151 views
0

這裏是開始的代碼。

如果你想忽略所有的CSV爵士樂,重要的部分就是循環。如何在循環內創建一個不同的變量名?

import csv 

Teacher_Array = [] 

class Teacher: 

    def __init__ (self, login, password, name, room, booked): 
     self.password = password 
     self.name = name 
     self.login = login 
     self.booked = booked 
     self.room = room 


with open('file.csv') as f: 

    reader = csv.reader(f) 
    for row in reader: 
     if len(row) < 10 and len(row) > 2: 

好的。

cvs的東西有點除了點,關鍵信息是循環,我怎麼每次創建不同的變量名?

在這一點上我想創建老師說的對象,

MrDongle =老師(行[0],行[1],行[3]等)

但是我不能讓循環中的新名字!請幫助。

非常愛,有些愚蠢的少年。

+1

也許你想把它們放進'dict'? 'some_dict ['MrDongle'] =老師(...)' – mostruash 2014-11-23 11:28:39

+1

創建一堆變量名稱可能不是最好的解決方案。您可以僅收集列表中的對象實例。根據您打算對結果做什麼,如前所述,這可能更適合存儲字典。 – Isaac 2014-11-23 14:16:26

回答

0

那麼,就做一個名字在字典中鍵:

teachers = {} 
.... 
teachers['MrDongle'] = Teacher(row[0], row[1], row[3], etc) 

編輯 其實,你可以生成一個名字:

exec('{} = Teacher(...)'.format('MrDongle', ...) 

但這是不可擴展的和不正確的解決方案。

相關問題