在python中如何在循环中保持attr集
如何使我在循环中设置的属性不受影响 这是我的代码,下面我将解释我的问题:在python中如何在循环中保持attr集,python,loops,attr,Python,Loops,Attr,如何使我在循环中设置的属性不受影响 这是我的代码,下面我将解释我的问题: students = Student.find_students() if students: for student in students: student.address="" address = PersonAddress.find_address_by_person(student.person) student.address=address
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
的值时,地址正确显示(正确的地址,这不是问题),但当代码打印全局变量student
的值时,没有更多的地址
我必须做些什么才能保留它?即使在退出循环后,地址数据成员也将被保留 您可以打印学生的变量,而不是您个人的学生 试着用这个代替你的
pprint(vars(students))
:
您将正确地看到您的地址。您是否收到错误,或者它只是没有显示预期的输出?您是否看到
address=”“
,或者根本看不到地址?学生
是否实施了\uuuuu str\uuuuuuuu
或\uuuu repr\uuuuuu
?什么是学生名单?在这种情况下,vars(students)
应该根本不起作用。这没有任何意义。您想设置一个对象的属性,但将其保留在另一个对象中?Tobias_k:students是一个列表,我认为students的pprint将直接显示该学生的地址,并且通过DevShark的回答,我可以看到正确地保留了该地址。Goyo:这是有道理的,我想给列表中的对象添加一个属性,我必须使用一个列表(而不是一个学生列表和一个地址列表);)哦,好的。。。我想它会直接显示学生的个性。事实上,我用“学生中的s”再次显示了地址。Thx:)没问题。如果答案对您有效,请点击复选标记接受答案。
for s in students:
pprint(vars(s))