$ python
>>> import myapp
>>> reload(myapp)
<module 'myapp' from 'myapp.pyc'>
>>>
ctrl + DReload in Python-Interpreter
$ python
>>> from myapp import *
>>> reload(myapp)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'myapp' is not defined
Warum dies anders verhält? Wie kann ich bei Verwendung von neu laden?
Der Grund, warum ich * reload() * verwende, ist, weil ich den Quellcode des Moduls ändere und es teste und der Grund, warum ich * von myapp import * verwende, ist, weil es mir das Tippen erspart. – xralf
'reload' ist mit einer * Menge * Vorsicht zu verwenden. Es verhält sich in vielerlei Hinsicht unerwartet, am schlimmsten ist, dass Klassen in vielen Versionen innerhalb der VM vorhanden sind, abhängig davon, ob alte Instanzen neu geladener Klassen vorhanden sind. 'reload' wurde aus diesem Grund aus Python 3 entfernt. Oft ist es viel einfacher, ein kleines Skript einzurichten, das alle benötigten Module aufbaut und dann mit 'Importcode 'in eine Shell fällt. code.interact (lokal = einheimisch()) '.Der Python-Interpreter startet sehr schnell, was normalerweise schneller ist, als in der readline history nach 'reload' zu suchen. –
@NiklasB. Danke für den Rat, aber ich kann mir das ohne ein Beispiel nicht vorstellen. Wenn es möglich ist und Sie Zeit haben, mehr darüber zu schreiben, geben Sie bitte ein Beispiel zu einer Antwort. Oder ich kann eine neue Frage basierend auf Ihrem Kommentar erstellen, wenn Sie nicht dagegen sind. – xralf