2016-03-02 47 views
-1

如何保持我在循環中設置的屬性?如何在python中將attr設置爲一個循環

有我的代碼,我會解釋我的問題下一頁:

students = Student.find_students() 

if students: 
    for student in students: 
     student.address="" 
     address = PersonAddress.find_address_by_person(student.person) 
     student.address=address 
     pprint (vars(student))   

    pprint (vars(students)) 

當我打印的student值的地址是否正確顯示(和正確的地址,這不是問題),但是當代碼打印全局變量值students沒有更多的地址。

我需要做些什麼來保持它?

+0

您是否收到錯誤消息,還是隻顯示不出預期的輸出?你看到'address =「」',還是你看不到地址? 'Student'是否實現了'__str__'或'__repr__'?什麼是'學生',一個列表?在這種情況下,'瓦爾(學生)'根本不應該工作。 –

+0

這沒有任何意義。你想設置一個對象的屬性,但保留在另一個對象? – Goyo

+0

Tobias_k:學生是一個列表,我認爲學生的姓名將直接顯示學生的地址,並且與DevShark的答案分開,我發現地址是正確的。 Goyo:它是有道理的,我想添加一個屬性到一個列表中的對象,我必須使用一個列表(而不是一個列表中的學生和一個列表中的地址);) – Meojifo

回答

0

地址數據成員將保留,即使在您退出循環之後。

您打印students的變量,而不是您的個人student

試試這個,而不是你pprint (vars(students))

for s in students: 
    pprint(vars(s)) 

你會看到正確的地址。

+0

哦好吧.. 。我想它會直接顯示學生個人。事實上,隨着「爲學生服務」,我再次展示了地址。 Thx :) – Meojifo

+0

沒問題。如果它適用於您,請點擊複選標記以隨時接受答案。 – DevShark

相關問題