AttributeError: type object ... has no attribute ...
Résolu
Alan.b
Messages postés
1
Date d'inscription
jeudi 11 juillet 2024
Statut
Membre
Dernière intervention
11 juillet 2024
-
Modifié le 15 juil. 2024 à 17:14
Whismeril Messages postés 19144 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 6 septembre 2024 - 12 juil. 2024 à 09:22
Whismeril Messages postés 19144 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 6 septembre 2024 - 12 juil. 2024 à 09:22
A voir également:
- AttributeError: type object ... has no attribute ...
- Attributeerror: module 'tkinter' has no attribute 'tk' ✓ - Forum Python
- AttributeError: partially initialized module 'requests' has - Forum Python
1 réponse
Bonjour.
Modifie le nom de la classe player en Player (ajout d'une majuscule).
class Player(pygame.sprite.Sprite): # sprite = element graphique pouvant se deplacer etc /joueur monstre def __init__(self): super().__init__() self.health = 100 self.max_health = 100 self.attack = 10 self.velocity = 5 self.image = pygame.image.load('assets/player.png') self.rect = self.image.get_rect()
Puis sous la ligne # charger notre joueur, ajoute :
player = Player()
12 juil. 2024 à 09:22
Bonjour
peut-être expliquer le pourquoi du comment.
Nommer une classe avec une majuscule en premier (Camel Case) fair partie des bonnes pratiques.
Quand à la variable player, comme toute variable en python, tant qu'on ne lui a pas affecté de valeur, python ne sait pas de quel type elle est (en plus de ne pas avoir de valeur).
Et dans ton cas, appeler la classe Player, aurait pu permettre de ne pas la confondre la variable player.