Python NameError: le nom n'est pas défini
J'ai un script python et je reçois l'erreur suivante:
Traceback (most recent call last):
File "C:UsersTimDesktoppop-erptest.py", line 1, in <module>
s = Something()
NameError: name 'Something' is not defined
Voici le code qui cause le problème:
s = Something()
s.out()
class Something:
def out():
print("it works")
Ceci est exécuté avec Python 3.3.0 sous Windows 7 x86-64.
Pourquoi la classe Something
ne peut-elle pas être trouvée?
35
demandé sur
Eric Leschinski
2013-02-11 03:56:13
2 réponses
Définir la classe avant de l'utiliser:
class Something:
def out(self):
print("it works")
s = Something()
s.out()
Vous devez passer self
comme premier argument à toutes les méthodes d'instance.
59
répondu
Blender
2017-01-17 21:28:05
, Vous devez définir la classe avant de créer une instance de la classe. Déplacez l'appel de Something
à la fin du script.
Vous pouvez essayer de mettre la charrette avant le cheval et invoquer des procédures avant qu'elles ne soient définies, mais ce sera un hack laid et vous devrez rouler le vôtre comme défini ici:
Rendre la définition de fonction dans un ordre de fichier python indépendante
2
répondu
user574435
2017-05-23 12:32:14