Seite 1 von 1

Python3.1 "reload " nicht definiert

Verfasst: Samstag 13. März 2010, 13:39
von Kev087
Guten Tag,

seit kurzem lerne ich Python in IDLE Python3.1 für Mac OS X. Dazu benutze ich das Buch "Learning Python" von Mark Lutz. In diesem Buch ist die Rede von einem Befehl namens "reload", der ein bereits in IDLEs Interaktivmodus importiertes Modul erneut läd, um es ohne RESTART ausführen zu können. Doch leider funktioniert das bei mir nicht und folgende Fehlermeldung erscheint:

>>> reload (module1)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
reload (module1)
NameError: name 'reload' is not defined

Was kann ich tun, um den Befehl "reload" zu definieren? Oder gibt es bei Python3.1 keinen "reload" - Befehl?

Verfasst: Samstag 13. März 2010, 13:54
von sma
In Python 3.x gibt es kein `reload()` mehr. Importiere `imp` und benutze `imp.reload()` stattdessen.

Stefan

Re: Python3.1 "reload " nicht definiert

Verfasst: Samstag 13. März 2010, 13:55
von numerix
Kev087 hat geschrieben:Was kann ich tun, um den Befehl "reload" zu definieren? Oder gibt es bei Python3.1 keinen "reload" - Befehl?
Doch, die reload()-Funktion gibt es noch, allerdings befindet sie sich jetzt im Modul imp:

Code: Alles auswählen

import math,imp
imp.reload(math)

Verfasst: Samstag 13. März 2010, 15:41
von Kev087
Ich habe es gerade ausprobiert und es funktioniert. Vielen Dank!

Verfasst: Samstag 13. März 2010, 16:25
von cofi
Du solltest aber deine Buchentscheidung nochmal ueberdenken. Es ist hoechst unguenstig Python 3 mit einem Python 2 Buch zu lernen, da du solchen Stellen noch oefters begegnen wirst.

Verfasst: Samstag 13. März 2010, 16:38
von Kev087
Mhhh... Auf dem Buch steht ominöserweise aber " 4th Edition - Covers Python 2.6 and 3.x " . Welches Buch ist denn empfehlenswert? Dieses sollte es doch sein, wenn der Inhalt zur Überschrift passt, oder!?

Verfasst: Samstag 13. März 2010, 16:51
von Defnull
Vielleicht hast du vergessen, 2to3 über das Buch laufen zu lassen? ;)

Verfasst: Montag 15. März 2010, 11:43
von mkesper