当我在学生类中创建大量实例时 display方法只显示最后一个条目 这是我的密码
class student:
def __init__(self):
self.usn= None
self.name=None
self.branch=None
self.phno=None
def read(self):
self.usn=input("enter the usn: ")
self.name=input("enter the name: ")
self.branch=input("enter the branch: ")
self.phno=input("enter the phno: ")
def display(self):
print(f'\n{self.usn} {self.name} {self.branch} {self.phno}\n')
print(f'\nusn %name branch phno\n')
n=int(input("enter number of students : "))
for i in range(n):
emp=student()
emp.read()
print("\nusn name branch phno\n")
for i in student():
emp[i].display()
阅读方法很好用,我能输入很多学生的记录 但是我对只打印最后一个学生记录的显示方法有一个问题
因此,我尝试迭代循环,但最终出现了一个错误
for i in student():
emp[i].display()
TypeError:“int”对象不可iterable
那么如何迭代来检索所有对象呢 并显示所有输入的学生记录
在for循环中使用相同的变量。在每次迭代中,最后输入的学生被删除并替换为新数据。您应该使用一个数组(或任何其他适合您的用例的数据结构),并在每次迭代时在数组中添加一个新的Student。你知道吗
此代码应适用于:
根据其他用户给出的答案,我得到了想要的正确输出 这是密码
您需要一个结构来保存类的所有对象,例如,一个列表。 可以使用
emp = []
简单地创建一个空列表。 然后可以使用方法append()
将对象附加到列表中。 所以你有:然后可以直接在列表上迭代:
在每次迭代中,
x
将是列表中的下一个对象相关问题 更多 >
编程相关推荐