Skip to main content
 首页 » 编程设计

python之Django、Python循环逻辑问题

2025年05月04日33EasonJim

部分有效。可能需要更多信息,但是,我想我会发帖以获取有关此处可能存在的任何明显错误的建议。

问题是如果 activity.get_cost() 返回一个 False 值,该函数似乎完全退出,返回 None。

当然,我希望它做的是在 costs = [] 中累加 cost 十进制值并返回它们的总和。很简单,我本以为……但我的 Python 新手显然缺少了一些东西。

根据要求提供更多信息。谢谢。

def get_jobrecord_cost(self): 
    costs = [] 
    for activity in self.activity_set.all(): 
        cost = activity.get_cost() 
        if cost: 
            costs.append(cost) 
    if len(costs): 
        return sum(costs) 
    else: 
        return False 

请您参考如下方法:

我注意到如果所有成本都为 None,您将返回 False;我不知道这是否有特定原因,但这确实使编写起来有点困难。如果这不是必需的,你可以这样写:

def get_jobrecord_cost(self): 
    costs = [activity.get_cost() or 0 for activity in self.activity_set.all()] 
    return sum(costs)