我是一个完全的业余爱好者,正在尝试编写一个函数,该函数接受一个对象列表,并返回所述对象的名称列表(基于它们是否通过 if 语句)。这是我在教程的帮助下编写的类(class):
class Student:
passmark=50
def __init__(self,name,mark):
self.name=name
self.mark=mark
def passes(self):
return self.mark > Student.passmark
所以从现在开始我假设我制作了一个对象列表,比如:
students = []
虽然这个列表只是一个全新的列表,这是必要的,但我如何将它链接到类(class)?从这一点我想找出哪些学生失败了,并将他们退回以及我感到困惑的地方:
def failed(list):
for student in Students:
if passmark > self.mark:
return list
我只能集中精力,抱歉,我刚上课,打电话上课让我很困惑。上面的代码根本没有引用这个类,我真的很困惑该怎么做。我没有语法错误或任何其他错误,我认为我的逻辑存在致命缺陷。
最佳答案
您想从学生列表中取出所有学生。所以在 for 循环中使用它。此外,您正确地将通过/失败标准的逻辑封装在一个方法中,因此请使用它。
这是我认为您想要的代码:
def failed(list_of_students):
failed_students = []
for student in list_of_students:
if not student.passes():
failed_students.append(student.name)
return failed_students
一种更高级的方法是使用列表理解:
def failed(list_of_students):
return [student for student in list_of_students if not student.passes()]
它更像 pythonic,但对于具有 C 或 Java 背景的初学者来说我更难理解。
关于python - 如何在函数 Python 中调用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53419129/