Python 如何将所有实例的属性添加到一起
我在学习OOP,我想做一个程序来记录我的储蓄,我想把我每个月的储蓄加起来 每个月都是一个对象,我要将每个月的(month.budget+month.to_save_every_month)相加Python 如何将所有实例的属性添加到一起,python,python-3.x,Python,Python 3.x,我在学习OOP,我想做一个程序来记录我的储蓄,我想把我每个月的储蓄加起来 每个月都是一个对象,我要将每个月的(month.budget+month.to_save_every_month)相加 class Saving(): 每个月保存一次=961.71 花费=[] #saved=这是我想要添加它们的地方 定义初始(自我、工资、租金): 工资 self.rent=租金 self.budget=round(self.wage-(self.to\u save\u每月+self.rent),2) de
class Saving():
每个月保存一次=961.71
花费=[]
#saved=这是我想要添加它们的地方
定义初始(自我、工资、租金):
工资
self.rent=租金
self.budget=round(self.wage-(self.to\u save\u每月+self.rent),2)
def支出(自我、支出):
self.budget=round(self.budget-spend,2)
self.spend.append(spend)
如果您将对象保存在名为例如savings\u list
的列表中,您只需执行以下操作:
total_savings = sum(x.budget + x.to_save_each_month for x in savings_list)
首先,您必须跟踪所有创建的类实例,因为没有内置的方法来实现这一点。最简单的方法是添加一个空列表作为类变量,并在init方法中将每个实例附加到该列表中:
class Saving:
# your other class variables here
instances = []
def __init__(self,wage,rent):
# your init logic here
self.__class__.instances.append(self)
现在,您只需要创建一个方法来返回所需的总和:
def savings_sum(self):
return sum(month.budget + month.to_save_each_month for month in self.instances)
在内部,将此方法作为类方法可能更有意义,因为它只需要访问class属性实例
,但这并不是重点-它应该以任何方式工作。但我似乎无法让它工作-请更具体一些。您是否得到错误或不正确的输出?向我们展示所有相关信息。很抱歉,我的意思是我不知道如何让它工作,我已经研究了一个小时,但似乎找不到任何方法来添加所有对象的属性。