如何在 python 中循环设置 attr

How to keep attr set in a loop in python

我怎样才能将我在循环中设置的属性排除在外?

这是我的代码,接下来我会解释我的问题:

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 的值时,有没有地址了。

我需要做什么才能保留它?

地址数据成员将被保留,即使在您退出循环后也是如此。

您打印 students 的变量,而不是您自己的 student

试试这个而不是你的 pprint (vars(students)) :

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

您会看到正确的地址。