Python-如何通过查找对象的属性来搜索存储在列表中的对象

时间:2018-10-14 10:45:58

标签: python-3.x

我有一个存储学生属性的班级:

class Student(object):
    def __init__(self):
        self.__name = ''
        self.__nationality= ''
        self.__age = 0
        self.studentId=''

class EnglishStudent(Student):
    def __init__(self):
        Student.__init__(self)
        self.__englishStudents = []   

我从CSV导入学生详细信息。并从中创建新的学生对象并将其存储在self .__ englishStudents []中。

我正在尝试创建一个将学生ID作为输入的函数,检查学生ID是否在自身中。__englishStudents []并返回所有学生详细信息(如果找到)。

有什么提示吗?

这是我到目前为止所拥有的,但是即使我确定它是在自己中,也似乎找不到该学生ID。__englishStudents []

def getStudentDetails(self, studentId):
        for student in self.__englishStudents:
            if self.studentId == studentId
                print(student.getName(), student.getAge())
            else:
                print("Student ID not found") 
                break               

1 个答案:

答案 0 :(得分:1)

您似乎要检查self.studentId而不是要比较的学生对象。尝试将if self.studentId == studentId更改为if student.studentId == studentId

块将变为:

def getStudentDetails(self, studentId):
        for student in self.__englishStudents:
            if student.studentId == studentId
                print(student.getName(), student.getAge())
            else:
                print("Student Id not found") 
                break