IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages Discussion :

TypeError: Mage.__init__() missing 2 required positional arguments:


Sujet :

Langages

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juillet 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut TypeError: Mage.__init__() missing 2 required positional arguments:
    Bonjour , j'ai un problème que même chatgpt et 48h de recherche n'a pas réussie a résoudre, donc c'est un probleme sur l'heritage multiple. j'ai essayer vraiment beaucoup de chose mais sans succès, la seul chose qui a marcher etait de rajouter un self dans la classe guerrier comme ceci "
    class Guerrier(Personnage):
    def __init__(self, nom, sexe, couleur, pdv, experience, force, armure):
    super().__init__(self,nom, sexe, couleur, pdv, experience);

    mais dans le cas ou je rajoute des attribut boom sa ne marche plus , chatgpt me mène en bateaux et sur les autres forum j'ai pas trouver d'aide, meme sur stackoverflow. merci a vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    class Personnage:
        def __init__(self, nom, sexe, couleur, pdv, experience):
            self.nom = nom
            self.sexe = sexe
            self.couleur = couleur
            self.pdv = pdv
            self.experience = experience
     
        def attaquer(self):
            print(f"{self.nom} attaque l'ennemi.")
     
        def seDefendre(self):
            print(f"{self.nom} se defend contre l'attaque ennemie.")
     
     
    class Guerrier(Personnage):
        def __init__(self, nom, sexe, couleur, pdv, experience, force, armure):
            super().__init__(nom, sexe, couleur, pdv, experience)
            self.force = force
            self.armure = armure
     
        def attaquer(self):
            print(f"{self.nom} assene un puissant coup avec sa force de {self.force}.")
     
        def seDefendre(self):
            print(f"{self.nom} se protege avec son armure de {self.armure}.")
     
     
    class Mage(Personnage):
        def __init__(self, nom, sexe, couleur, pdv, experience, intelligence, sorts):
            super().__init__(nom, sexe, couleur, pdv, experience)
            self.intelligence = intelligence
            self.sorts = sorts
     
        def lancer_sort(self):
            print(f"{self.nom} lance un sort puissant avec son intelligence.")
     
    class GuerrierMage(Guerrier, Mage):
        def __init__(self, nom, sexe, couleur, pdv, experience, force, armure):
            Guerrier.__init__( self,nom, sexe, couleur, pdv, experience, force, armure)
            Mage.__init__( self,nom, sexe, couleur, pdv, experience,intelligence,sorts)
     
     
    # Creation d'une instance de la classe GuerrierMage
    guerriermage1 = GuerrierMage("GuerrierMage1", "masculin", "rouge", 100, 10, 8, "arrmure")

    "
    C:\Users\a\OneDrive\Bureau>py oki.py
    Traceback (most recent call last):
    File "C:\Users\alex2\OneDrive\Bureau\oki.py", line 45, in <module>
    guerriermage1 = GuerrierMage("GuerrierMage1", "masculin", "rouge", 100, 10, 8, "arrmure")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\a\OneDrive\Bureau\oki.py", line 40, in __init__
    Guerrier.__init__( self,nom, sexe, couleur, pdv, experience, force, armure)
    File "C:\Users\a\OneDrive\Bureau\oki.py", line 18, in __init__
    super().__init__(nom, sexe, couleur, pdv, experience)
    TypeError: Mage.__init__() missing 2 required positional arguments: 'intelligence' and 'sorts'
    "



    pouvez-vous m'aider s'il vous plaît je débute en poo

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 876
    Points
    1 876
    Par défaut
    Bonjour,

    Je propose d'abord de formater le code avec les balises adéquatess, car la tabulation est importante en Python.
    Des fois que quelqu'un voudrait tester votre code.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juillet 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    Bonjour, d'accord je mets les tabulation tout desuite

    Je propose d'abord de formater le code avec les balises adéquatess, car la tabulation est importante en Python.
    Des fois que quelqu'un voudrait tester votre code.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juillet 2023
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    et voila !

    Je propose d'abord de formater le code avec les balises adéquatess, car la tabulation est importante en Python.
    Des fois que quelqu'un voudrait tester votre code.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    c'est du python, ça vient faire quoi dans .NET ?? (si un modo peut déplacer le sujet dans la rubrique python)

    Sinon dans l'init de GuerrierMage, tu ne donnes pas tous les éléments du Mage: il manque intelligence et sorts, comme l'indique le message d'erreur d'ailleurs.
    Après je ne suis pas sûr de ton héritage, parce que tu vas devoir gérer 2 fois les éléments communs à guerrier et mage.

Discussions similaires

  1. [Python 3.X] TypeError: <lambda>() missing 1 required positional argument: 'b'
    Par fkglaa dans le forum Général Python
    Réponses: 9
    Dernier message: 19/10/2020, 14h30
  2. TypeError: Entry_1() missing 1 required positional argument
    Par abcbbm dans le forum Général Python
    Réponses: 8
    Dernier message: 13/05/2020, 17h32
  3. TypeError: f() missing 1 required positional argument: 'd'
    Par Gailletan2 dans le forum Général Python
    Réponses: 3
    Dernier message: 08/05/2019, 13h34
  4. [Python 3.X] Probleme de TypeError: <lambda>() missing 1 required positional argument: 'b'
    Par Tonivege dans le forum Général Python
    Réponses: 7
    Dernier message: 20/02/2018, 13h58
  5. Réponses: 2
    Dernier message: 23/08/2016, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo