Python: 'import myClass' rückgängig machen

Gast #4561637
Hallo,

ich bin gerade dabei eine Klasse in python zu schreiben. Momentan ist 
meine Vorgehensweise diese zu testen so:
Ein Editor ist offen, in der ich meine Änderungen einfüge.
Ein zweiter Editor ist offen, in dem ich (im selben Pfad befindend) 
diese Klasse so aufrufe:
user@pc: python
>>> import myClass
>>> myObj = myFile.myClass()
>>> myObj.myFunc()

Wenn ich dann in der Konsole die Fehlermeldung sehe, schließe ich den 
zuvor aufgerufenen Python-Interpreter, mache meine Änderung im anderem 
Fenster und starte den Python-Interpreter wieder neu und gebe meine 
oberen Angaben erneut ein.

Irgendwie kann das doch aber nicht der "richtige" Weg sein. Kann man die 
mit import eingebundene Klasse irgendwie entfernen um sie danach erneut 
mit 'import' einbinden zu können? Oder geht ihr einen gänzlich anderen 
Weg?
Gast #4561680
Ein Import erzeugt in Python ein Objekt, das mit del wieder gelöscht 
werden kann:

del myClass

Man kann aber hier auch alternativ die reload-Funktion versuchen:

reload(myClass)
Gast #4563867
Das mit dem del und reload war das was ich gesucht hatte.

Die Klasse direkt auf der Konsole aus zu führen, indem ich den Code mit 
in das Script packe ist aber sicher praktischer.

Danke für die Tipps.
Gast #4563887
Kann jemand ein PDF zum Download oder eine Webseite empfehlen, in der 
man relativ schnell an Python-Programmierung herangeführt wird? Eine 
Seite mit relativ kurzen Beispielen wäre praktisch.
#4585683
Du kannst auch einfach das sehr praktische Statement
1
if __name__ == "__main__":

ganz unten in deiner Datei nutzen, denn diese Bedingung ist nur wahr, 
wenn die Datei selber ausgeführt wird. D.h. dass wenn du deine Klasse, 
bzw. die Datei in der deine Klasse liegt ausführst das dann der Testcode 
in dem Statement ausgeführt wird. Wenn du das Modul, bzw. die Klasse, 
bzw. die Datei in der deine Klasse liegt importierst, dann wird es 
allerdings nicht ausgeführt.

Grüße
Ole

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.