Je souhaite additionner l'attribut costsum pour toutes les instances d'un objet.Comment faire la somme des attributs de toutes les instances d'un objet
class ActivityCenter:
def __init__(self, costpool, costsum, costdriver, cdunits):
self.costpool = costpool
self.costsum = costsum
self.costdriver = costdriver
self.cdunits = cdunits
cp1 = ActivityCenter("Material Handling", 480000, "Pounds", 160000)
cp2 = ActivityCenter("Production orders", 90000, "Num of POs", 200)
# I am looking to add up the costsum values for all instances, similar to:
costsumtotal = (cp1.__dict__.get("costsum")) + (cp2.__dict__.get("costsum"))
Jusqu'à présent, je l'ai essayé d'utiliser la somme() avec la compréhension de la manière suivante, en se référant à this solution:
B = []
for i in range(10):
B.append(ActivityCenter())
s = sum(i.costsum for i in B)
Mais je ne parviens pas à surmonter la TypeError que je manque 4 arguments de position requis .
Le premier bloc de code envoie quatre arguments au constructeur. Le deuxième bloc de code envoie zéro. Êtes-vous surpris que l'un d'eux a tort? Quelle avenue pensez-vous que vous devriez étudier pour le réparer? – TigerhawkT3
Vous rencontrez l'erreur lors de l'initialisation de nouveaux objets d'activité. Votre classe vous oblige à donner 4 paramètres 'costpool, costum, costdriver, cdunits' et vous n'en donnez aucun' B.append (ActivityCenter()) '. Sinon, cela devrait fonctionner. – umutto