具体来说,在我的例子中,Job 类 有许多操作的Task 对象。
import tasker
class Job(object):
_name = None
_tasks = []
_result = None
def __init__(self, Name):
self._name = Name
def ReadTasks(self):
# read from a Json file and create a list of task objects.
def GetNumTasks(self):
return len(self._tasks)
def GetNumFailedTasks(self):
failTaskCnt = 0
for task in self._tasks:
if task.IsTaskFail():
failTaskCnt += 1
为了使 GetNumFailedTasks 更简洁,我想使用过滤器,但我不确定以 IsTaskFail 作为第一个参数提供过滤器的正确方法是什么。
如果这是重复的,请将其标记为重复,并指出正确答案。
您可以使用带有 sum
的生成器表达式:
failTaskCnt = sum(1 for task in self._tasks if task.IsTaskFail())
我是一名优秀的程序员,十分优秀!