Ajout d'objets avec plusieurs attributs
J'essaie de comprendre s'il existe un meilleur moyen d'obtenir le même résultat à partir de cette ligne de code. Par exemple : définir un nouvel objet (c3) à l'intérieur de la fonction add_coordinates si possible ? Ou est-ce le moyen le plus simple et le plus efficace d'ajouter les deux objets.
class Values:
def __init__(self,x,y):
self.x=x
self.y=y
def add_values(self,x,y):
self.x=x+self.x
self.y=y+self.y
c1 = Values(5,6)
c2 = Values(7,9)
c3= Values(0,0)
c3.add_values(c1.x,c1.y)
c3.add_values(c2.x,c2.y)
print(c3.x)
print(c3.y)
Solution du problème
Une amélioration serait de remplacer la __iadd__
méthode dunder afin que vous puissiez utiliser +=
, plutôt que d'utiliser une fonction personnalisée qui fait essentiellement la même chose:
class Values:
def __init__(self,x,y):
self.x=x
self.y=y
def __iadd__(self, other):
return Values(self.x + other.x, self.y + other.y)
c1 = Values(5,6)
c2 = Values(7,9)
c3= Values(0,0)
c3 += c1
c3 += c2
print(c3.x)
print(c3.y)
Cela imprime :
12
15
Commentaires
Enregistrer un commentaire