Récursivité avec une classe
Bonjour,
Ce bout de programme récursif avec la variable locale truc fonctionne comme je le veux
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| compteur=0
def recurs(truc,chemin):
global compteur
if truc==0 and chemin==5:
compteur+=1
print("fin")
elif truc==0 and chemin!=5:
compteur+=1
print("reste nul mais pas bon chemin")
else:
for i in range(0,2):
compteur+=1
print(truc, " ", chemin," ",i," compteur : ", compteur)
recurs(truc-1, chemin+i)
recurs(9,0) |
J'aurais en fait besoin de remplacer la variable truc (une valeur entière), par une classe dont la valeur entière serait truc.reste. À cause de la récursivité, je crée une copie de l'instance truc2 en truc, histoire de "localiser" l'instance. Pourtant ça ne marche pas. Ci-dessous le programme qui ne marche pas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import copy
global compteur
compteur=0
class Objet:
def __init__(self,reste):
self.reste=reste
def coup(truc):
truc.reste-=1
return truc
truc=Objet(9)
def recurs(truc2,chemin):
truc=copy.copy(truc2)
global compteur
if truc.reste==0 and chemin==5:
compteur+=1
print("fin")
elif truc.reste==0 and chemin!=5:
compteur+=1
print("reste nul mais pas bon chemin")
else:
for i in range(0,2):
compteur+=1
print(truc.reste, " ", chemin," ",i," compteur : ", compteur)
recurs(coup(truc), chemin+i)
recurs(truc,0) |