Ich suche eine Möglichkeit, Module zu importieren, deren Namen ich als String parat habe. Es gibt zwar das imp-Modul, aber da muss man ja gleich den kompletten Pfad zur Modul-Datei und so noch einiges angeben...
Ich suche aber sowas hier: statt `import foo` `import_str("foo")`. Geht das? Ich dachte ich bin schonmal drüber gestolpert, finde es aber nicht wieder... auch nicht hier in der Forum-Suche.
`import_str("foo")` statt `import foo`
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
siehe auch: http://www.python-forum.de/topic-14591.html
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Irgendwie komisch den Name. Man importiert ja keinen string...veers hat geschrieben:http://werkzeug.pocoo.org/documentation ... ort_string[/b]
Finde meine Variante besser: http://www.python-forum.de/post-99528.html#99528 Weil sie im Prinzip genauso funktioniert wie der normale import.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Irgendwie komisch der Name. Man importiert ja nicht zwei Module...jens hat geschrieben:Irgendwie komisch den Name. Man importiert ja keinen string...veers hat geschrieben:http://werkzeug.pocoo.org/documentation ... ort_string[/b]
Finde meine Variante besser: http://www.python-forum.de/post-99528.html#9952
Außerdem mutable Objekte als Default-Parameter in der Signatur? Das wird wohl kaum so funktionieren wie gedacht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das ist die selbe Idee wie bei urllib und urllib2.Leonidas hat geschrieben:Irgendwie komisch der Name. Man importiert ja nicht zwei Module...
Was meinst du damit? Kannst du mal ein Beispiel geben?Leonidas hat geschrieben:Außerdem mutable Objekte als Default-Parameter in der Signatur? Das wird wohl kaum so funktionieren wie gedacht.
jens hat geschrieben:Was meinst du damit? Kannst du mal ein Beispiel geben?Leonidas hat geschrieben:Außerdem mutable Objekte als Default-Parameter in der Signatur? Das wird wohl kaum so funktionieren wie gedacht.
Code: Alles auswählen
def test(foo=[]):
foo.append("bar")
print foo
for dummy in xrange(10):
test()
Code: Alles auswählen
['bar']
['bar', 'bar']
['bar', 'bar', 'bar']
['bar', 'bar', 'bar', 'bar']
['bar', 'bar', 'bar', 'bar', 'bar']
['bar', 'bar', 'bar', 'bar', 'bar', 'bar']
['bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar']
['bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar']
['bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar']
['bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar', 'bar']
yay. Den Code hatte ich noch gespeichert
Bei deiner Funktion tritt der Effekt nicht auf, da du die Argumente nicht veränderst.
Aber eigentlich lässt es man per Konvention ganz, mutables als Default zu nehmen und nimmt stattdessen "None", damit keine Verwirrung auftritt.
Aber eigentlich lässt es man per Konvention ganz, mutables als Default zu nehmen und nimmt stattdessen "None", damit keine Verwirrung auftritt.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das ist mir jetzt zum ersten mal aufgefallen.audax hat geschrieben:Aber eigentlich lässt es man per Konvention ganz, mutables als Default zu nehmen und nimmt stattdessen "None", damit keine Verwirrung auftritt.
Ich hab's mal geändert.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Bei der Funktion tritt das schon auf, denn wenn man sie mit irgendwelchen Parametern aufruft, dann bleiben die Referenzen bestehen und Memory Leaks können durch unbenötigte Referenzen entstehen.audax hat geschrieben:Bei deiner Funktion tritt der Effekt nicht auf, da du die Argumente nicht veränderst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Versteh ich jetzt nicht.Leonidas hat geschrieben:Bei der Funktion tritt das schon auf, denn wenn man sie mit irgendwelchen Parametern aufruft, dann bleiben die Referenzen bestehen und Memory Leaks können durch unbenötigte Referenzen entstehen.audax hat geschrieben:Bei deiner Funktion tritt der Effekt nicht auf, da du die Argumente nicht veränderst.