2016-07-09 8 views
1

Ich bin neu in Python und ich begann gerade Klassen zu lernen. Ich habe diesen sehr einfachen Code geschrieben. Es läuft gut von der IDE, aber ich kann nicht scheinen, dass es in der interaktiven Konsole ausgeführt wird. Ich habe versucht, die interaktive Konsole in Visual Studio und PyCharm zu verwenden. Die Datei heißt monster.py im Projekt New_Program.py. Im interaktiven Fenster Typ I von Monster Import MonsternWie Sie eine Klasse in das interaktive Fenster für pycharm oder Visual Studio importieren

in Visual Studio, erhalte ich folgende Fehlermeldung: Traceback (jüngste Aufforderung zuletzt): Datei "" Linie 1 in Import: Nein Modul mit dem Namen ‚Monster‘

In PyCharm ich nicht sofort eine Fehlermeldung erhalten, wenn ich von Monster Import Monster eingeben Aber dann, als ich mo.color an der interaktiven Eingabeaufforderung versuchen Eingabe, ich die f letzter Fehler: Traceback (zuletzt letzter Aufruf): Datei "C: \ Benutzer \ Live \ Anaconda3 \ lib \ Site-Pakete \ IPython \ core \ interactiveshell.py", Zeile 2885, in run_code exec (code_obj, self .user_global_ns, self.user_ns) Datei "" Linie 1 in mo.color Nameerror: name 'mo' definiert

class Monster(object): 
     hit_points = 1 
     color = "yellow" 
     weapon = "sword" 

    mo = Monster() 
    mo.color 

Antwort

0

nicht vielleicht diese Parameter zu initialisieren, was Sie tun möchten, ist in der Initiator. Versuchen Sie,

+0

Ich habe versucht, dass ich bin immer noch einen Fehler im interaktiven Fenster bekommen. Traceback (letzter Anruf zuletzt): Datei "", Zeile 1, in NameError: Name 'mo' ist nicht definiert Vielen Dank für den Versuch. – Oedipus

+0

Sind die zwei Dateien im selben Ordner oder in verschiedenen Verzeichnissen? – pathoren

+0

In PyCharms ist der Pfad: C: \ Benutzer \ Live \ PycharmProjects \ Mein erstes Projekt \ monster.py Ich habe versucht, von C: \ Benutzer \ Live \ PycharmProjects \ Mein erstes Projekt \ Monster einzutippen.py import Monster und das hat nicht funktioniert Ich bekomme einen ungültigen Syntaxfehler – Oedipus

1

Sie importieren nur einen bestimmten Namen aus monster.py in den Namespace Ihres Interpreter.

Wenn Sie den Import ausführen, wird der Code, den Sie geschrieben haben, ausgeführt, aber mo ist in Ihrem Namespace nicht verfügbar und Sie können ihn daher nicht verwenden.

Sie könnten versuchen, eine der folgenden Möglichkeiten:

1) Erstellen Sie die Monster-Instanz im Terminal:

>>> from monster import Monster 
>>> mo = Monster() 
>>> mo.color 

2) Wenn Sie nur das Beispiel benötigen, importieren nur die Instanz:

>>> from monster import mo 
>>> mo.color 

3) Importieren Sie das Modul in den Namespace, nicht nur die Klasse:

4) (nicht wirklich gute Praxis) importiert alles aus dem Modul in Ihren Namensraum:

>>> from monster import * 
>>> mo.color