AttributeError
Résolu
Utilisateur anonyme
-
grelot -
grelot -
Bonjour,
Je viens vous voir car je ne saurais m'expliquer l'erreur :
lancer[quelDe].attributionDe()
AttributeError: 'int' object has no attribute 'attributionDe'
que j'obtiens en faisant tourner ce code :
alors que j'ai plus haut :
qui fonctionne ...
Est ce que quelqu'un aurait la capacité d'éclairer ma lanterne ?
Merci beaucoup !
Jockill
Je viens vous voir car je ne saurais m'expliquer l'erreur :
lancer[quelDe].attributionDe()
AttributeError: 'int' object has no attribute 'attributionDe'
que j'obtiens en faisant tourner ce code :
class De(): def __init__(self, num, valeur, face, lancerProof): self.num = num self.valeur = valeur self.face = face self.lancerProof = lancerProof def attributionDe(self): #Associe un nombre au nom de la face self.valeur = random.randint(1,6) if (self.lancerProof == 1): if (self.valeur == 1): self.face = "Crane" self.lancerProof = 0 elif (self.valeur == 2): self.face = "Or" elif (self.valeur == 3): self.face = "Diamant" elif (self.valeur == 4): self.face = "Epees" elif (self.valeur == 5): self.face = "Perroquet" elif (self.valeur == 6): self.face = "Singe" else : print("Tu as fait couler ton de au fond de l'ocean ...") ... #Hors de la classe : combienRelance = int(input("Combien de des veux tu relancer ?")) for r in range(combienRelance): quelDe = (int(input("Quel de veut tu relancer ?"))) quelDe-=1 lancer[quelDe].attributionDe() print(str(lancer[quelDe].num) + " : " + lancer[quelDe].face)
alors que j'ai plus haut :
for i in range(8): #initialisation des instances de de. lancer=[0]*8 lancer[i] = De(n,v,f,1) lancer[i].attributionDe() print(str(lancer[i].num) + " : " + lancer[i].face) n+=1
qui fonctionne ...
Est ce que quelqu'un aurait la capacité d'éclairer ma lanterne ?
Merci beaucoup !
Jockill
A voir également:
- Attributeerror: 'str' object has no attribute 'send'
- Local send - Télécharger - Divers Utilitaires
- Shockwave flash object - Télécharger - Divers Web & Internet
- Attribute changer - Télécharger - Divers Utilitaires
- Nº sur clavier ✓ - Forum Windows
- No boot disk has been detected or the disk has failed - Forum Disque dur / SSD
1 réponse
Bonjour.
Relis ton code
Tu écrases à chaque tour de boucle ta liste lancer par une liste de 0, ce qui fait que lancer sera au final une liste de 0, sauf le dernier élément, qui sera un objet De.
Pour t'en convaincre, fais des print de ta liste lancer.
Relis ton code
for i in range(8): #initialisation des instances de de. lancer=[0]*8 lancer[i] = De(n,v,f,1) lancer[i].attributionDe() print(str(lancer[i].num) + " : " + lancer[i].face) n+=1
Tu écrases à chaque tour de boucle ta liste lancer par une liste de 0, ce qui fait que lancer sera au final une liste de 0, sauf le dernier élément, qui sera un objet De.
Pour t'en convaincre, fais des print de ta liste lancer.