TypeError: attaque() manquant 1 nécessaire de position argument: 'auto'
hi im obtenir cette erreur
TypeError: attack() missing 1 required positional argument: 'self'
et c'est mon code
class Enemmy :
life = 3
self = ""
def attack(self):
print ("ouch!!!!")
self.life -= 1
def checkLife(self):
if self.life <= 0 :
print ("dead")
else:
print (self.life)
enemy=Enemmy
enemy.attack()
j'ai vérifié et regarda la plupart des endroits dit j'ai oublié l'auto dans la def attaque
ou que j'ai besoin de faire un obj de mettre la classe en
im en utilisant python 3.4 avec py charme
j'ai effectivement eu ce code à partir d'un tutoriel et je ne sais pas quelle est mon erreur
enemy=Enemmy
-> enemy=Enemmy()
OriginalL'auteur Sahoory | 2015-05-11
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas à l'instanciation de votre
Enemy
classe. Vous êtes à la création d'une nouvelle référence à la classe elle-même. Ensuite, lorsque vous essayez d'appeler une méthode, vous êtes en l'appelant sans une instance, qui est censé aller dans leself
paramètre deattack()
.Changement
à
Aussi (comme l'a souligné par Kevin dans les commentaires) votre
Enemy
classe doit probablement avoir uninit
méthode pour initialiser ses champs. E. g.__init__()
méthode...Il est possible de faire sans, mais je suis d'accord.
OriginalL'auteur khelwood
Vous avez besoin pour créer et utiliser une instance de la classe, et non pas la classe elle-même:
Cette instance est alors accessible que
self
. Si vous n'avez pas une instance, alors qu'il en manque et c'est ce que le message d'erreur vous indique.OriginalL'auteur Stefan Pochmann