Bonjour à tous,
voilà j'ai un petit problème. Un exemple vaut mieux qu'un long discours :
import numpy as np
class T(object):
def __init__(self,a,b,c):
self.a = a
self.b = b
self.c = c
def __calcul__(self):
self.a = self.a+1
self.b = self.b+1
self.c = self.c+1
self.vect = np.array([self.a,self.b,self.c])
return self.vect
class TT(T):
def __init__(self,a,b,c):
T.__init__(self,a,b,c) # on obtient le 1er self.vect #
self.vect3 = []
def __calcul__(self):
T.__calcul__(self) # 1er calcul #
print T.__calcul__(self)
self.d = 2*self.a # e doit valoir 4 #♦
self.e = 2*self.b # // #
self.f = 2*self.c # // #
self.vect2 = np.array([self.d,self.e,self.f])
for i in range(len(self.vect)):
self.vect = self.vect2
print self.vect
self.vect2 = 2*self.vect
print self.vect2
self.vect = self.vect2
print self.vect
T.__calcul__(self)
print T.__calcul__(self)
Ma classe TT hérite de T (donc des attributs et méthodes) ; cependant ce que je cherche à faire c'est de recalculer à chaque nouvelle itération la valeur de l'attribut de la classe mère self.vect dans la méthode __calcul__(self) de la classe fille TT et la réinjecter dans la méthode T.__calcul__(self):
Donc, en gros à chaque itération, recalculer le vecteur self.vect réinjecter cette nouvelle valeur dans T.__calcul__(self) as soon as.
Or, j'ai cru par le mot clé self, que la "communication" se faisait 'naturellement' alors que pas du tout.
D'une part mon vecteur self.vect n'est pas "modifié" mais la méthode calcul de la classe T ne prend pas la nouvelle valeur de self.vect
Comment dire à la méthode calcul de T de prendre le nouveau self.vect recalculé à chaque itération et me sortir le bon résultat à chaque fois ?
Je travaille sur un moteur de calcul et j'ai besoin d'une part de recalculer des valeurs à réinjecter dans plusieurs méthodes jusqu'à un certain
seuil atteint et d'autre part que mes méthodes prennent les bonnes valeurs recalculées , relancent leur calcul etc...et ça prend trop de
temps.
Merci à vous tous par avance de votre aide.
YZ.