鑑於蟒類class Student():
和列表names = []
;然後我想創建多個實例的Student()
並將它們添加到列表中names
,用於存儲類實例的Python列表?
names = [] # For storing the student instances
class Student():
def __init__(self, score, gender):
self.score = score
self.gender = gender
現在我要檢查出所有的男同學的成績,我能做到這樣?
scores = []
for i in names:
if i.gender == "Male":
scores.append(i.score)
我的問題是:如何創建一個可以(如果可以用任何語句來完成)的列表存儲Student
的實例?或者說,當我寫names = []
時,我怎麼能說出names
中的每個元素都是Student
的一個實例,以便我可以使用該元素的屬性,儘管python是弱類型的?我希望我自己清楚;)
我可以寫這樣的:
for i in range(len(names)):
student = Student()
student = names[i]
if student.gender == "Male":
# Whatever
我不這樣想......
響應您的編輯:沒有,因爲你打電話'學生()你不能寫'不帶參數,儘管它需要2.如果你刪除這條線,它會工作。 – sepp2k 2010-08-14 15:47:59
@ sepp2k,是的,參數不符合Student construtor,所以這會導致錯誤。好吧,我認爲我應該考慮我的問題,因爲我現在在表達我的問題時遇到了困難,如果您認爲通過代碼更多,您可能會了解它失敗的位置,但我發佈的內容並不是我的觀點 – ladyfafa 2010-08-14 15:51:38
。 'student = Student()'這一行試圖創建一個新的'Student'實例並將它存儲在變量'student'中。這將失敗,因爲構造函數缺少一些必需的參數。我想你正在試圖宣佈「學生」的類型?你不必在Python中這樣做。它將在運行時爲您解決。還要注意,你可以直接在'names'的元素上用''爲學生名稱:...'進行迭代。 – katrielalex 2010-08-14 18:38:32