我是 Python 的新手,所以我可能没有以正确的方式提出这个问题,我试图找到答案(显然没有成功)。
我正在尝试设置一个类,然后找到该类的所有符合特定条件的实例。我不知道上课是否是解决这个问题的正确方法,所以对所有建议都持开放态度(即使这让我无法上课)。
举一个简单的例子(见下面的代码),如果我想找到所有超过 30 岁的员工,正确的方法是创建一个类方法吗?实际上,您拥有 DOB 而不是年龄,但为了简单起见,我已经随着年龄的增长而消失了。我还想要某种变量,以便我可以将 30 更改为 50。
class Employee:
def __init__(self, name, age):
self.name = name
self.age = age
e1 = Employee("John", 36)
e2 = Employee("Sally", 21)
e3 = Employee("Jamie", 53)
实现此目标的“正确”方法或有效方法是什么?对于上面这个年龄在 30 岁以上的例子,我想要 e1 和 e3 实例。任何帮助将不胜感激!
最佳答案
您通常会将您的实例放在某种集合中,例如列表,而不是单个变量。然后,您可以过滤您的列表或使用列表理解来获取您想要的列表中的元素。这是一个列表理解的例子:
class Employee:
def __init__(self, name, age):
self.name = name
self.age = age
employees = [
Employee("John", 36),
Employee("Sally", 21),
Employee("Jamie", 53)
]
over_thirty = [e for e in employees if e.age > 30]
for e in over_thirty:
print(e.name)
打印:
John
Jamie
您可以避免使用额外的列表 over_thirty
并直接遍历筛选结果以获得相同的结果:
for e in filter(lambda e: e.age > 30, employees):
print(e.name)
关于python - 返回满足条件的类的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57033104/