Résolue

Incohérence d'exécution entre VSC et PyCharm

# Héritage # VSCode

Je suis au début de la section Héritage. Pourquoi le code fait en VSC sur MacOS:

projets = ["pr_Game0fThrones", "HarryPotter", "pr_Avengers"]
class Utilisateur:
    def __init__(self, nom, prenom):
        self.nom = nom
        self.prenom = prenom

    def __str__(self):
        return f"Utilisateur {self.nom} {self.prenom}"
    def afficher_projets(self):
        for projet in projets:
            print(projet)

paul = Utilisateur("Paul" "Durand")
paul.afficher_projets()

m'affiche en résultat que je ne comprend pas:

paul = Utilisateur("Paul" "Durand")
TypeError: __init__() missing 1 required positional argument: 'prenom'

alors que le même code sur PyCharm rentre dans la liste projets et affiche bien les 3 projets ????

Gabriel Trouvé

Mentor

Bonjour Francis,

Normalement tu as la même erreur des deux côtés, car il manque une virgule entre "Paul" et "Durand".

Version corrigée :

projets = ["pr_Game0fThrones", "HarryPotter", "pr_Avengers"]
class Utilisateur:
    def __init__(self, nom, prenom):
        self.nom = nom
        self.prenom = prenom

    def __str__(self):
        return f"Utilisateur {self.nom} {self.prenom}"

    def afficher_projets(self):
        for projet in projets:
            print(projet)

paul = Utilisateur("Paul", "Durand") # Il manquait la virgule
paul.afficher_projets()

Bonjour Gabriel
Merci pour la correction
Est-ce que c'est seulement l'expérience qui peut éviter ce type d'erreur ?

Gabriel Trouvé

Mentor

Oh ne t'inquiète pas, j'en oubliais des choses au début ^^.

A force tu vas apprendre à voir tes erreurs, et lire le type d'erreur renvoyé :)

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.