Bonjour à tous, je suis un tutoriel d'apprentissage sur python et j'ai abordé la notion de métaclasse, voilà seulement en reprenant un exemple du tutoriel, je rencontre une étrange erreur
Voici le code que j'ai testé
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 | class Personne: """Classe définissant une personne. Elle possède comme attributs : nom -- le nom de la personne prenom -- son prénom age -- son âge lieu_residence -- son lieu de résidence Le nom et le prénom doivent être passés au constructeur.""" def __new__(cls, nom, prenom): print("appel de la méthode __new__ dans la classe", cls) object.__new__(cls, nom, prenom) def __init__(self, nom, prenom): print("appel de la méthode __init") self.nom = nom self.prenom = prenom self.age = 22 self.lieu_de_residence = "Paris" if __name__ == "__main__": personne = Personne("Doe", "John") print(personne.nom) |
Voici l'erreur qui s'affiche
1 2 3 4 5 6 | Traceback (most recent call last): File "C:/Users/liy/PycharmProjects/test/metaclasse.py", line 16, in <module> personne = Personne("Doe", "John") File "C:/Users/liy/PycharmProjects/test/metaclasse.py", line 5, in __new__ object.__new__(cls, nom, prenom) TypeError: object() takes no parameters |
En regardant l'erreur sur google, ce qui a souvent été signalé, c'est un problème d'indentation mais j'ai réécris mon programme en prenant soin de n'avoir qu'un seul niveau d'indentation. A noter que j'utilise la version 3.5 de python. Est ce que quelqu'un aurait une idée du problème?
Merci d'avance pour les suggestions
+0
-0