python - 如何在函数 Python 中调用类

标签 python list class

我是一个完全的业余爱好者,正在尝试编写一个函数,该函数接受一个对象列表,并返回所述对象的名称列表(基于它们是否通过 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/

相关文章:

python - 根据两列 pandas 分组后查找重复行

java - 比较两个列表 - 寻找更快、更有效的方法

python - 使用Python类进行封装,而不是实例化

c# - 抽象泛型父类可以自动获取子(扩展)类型吗?

python - 无法为 Python 安装 Kivy

python - 将多个参数传递给函数

python - Python 中的排名/行号窗口函数

c# - 按 KeyValuePair 对列表值进行分组

list - 查找列表中元素的索引

PHP 类构造函数将 mysql 行作为对象返回