Hallo,
ich bin wieder mal (nicht nur in python) auf folgendes Problem gestoßen: Ich muss in einem Spiel Module nachladen, deren Namen von den übergebenen Parametern abhängig sind.
Geht das in Python? Und wenn ja, wie?
Module mit unbekannten Namen laden
-
- User
- Beiträge: 16
- Registriert: Montag 21. Juni 2010, 13:04
- Wohnort: Aschaffenburg
- Kontaktdaten:
Es gibt dass imp-Modul http://docs.python.org/library/imp.html und __import__
the more they change the more they stay the same
Auch wenn der Aufschrei sicher groß sein wird:
Code: Alles auswählen
exec "import %s" % "modulname"
AUFSCHREI!!!!!
Wenn, dann richtig!
Schade, dass der Aufschrei nicht größer als 200 geht
Wenn, dann richtig!
Schade, dass der Aufschrei nicht größer als 200 geht
Auch Oldschool geht das grösser:
Oder mit den Grafikzeichen mit denen auf dem C64 gerne Inhaltsverzeichnisse von Disketten gestaltet wurden:
("best viewed" mit einer Schriftart, die auch alle diese Unicode-Zeichen enthält.)
Code: Alles auswählen
_ _ ______ _____ _____ _ _ _____ ______ _____
/\ | | | | ____/ ____|/ ____| | | | __ \| ____|_ _|
/ \ | | | | |__ | (___ | | | |__| | |__) | |__ | |
/ /\ \| | | | __| \___ \| | | __ | _ /| __| | |
/ ____ \ |__| | | ____) | |____| | | | | \ \| |____ _| |_
/_/ \_\____/|_| |_____/ \_____|_| |_|_| \_\______|_____|
Code: Alles auswählen
╭─╮ ┌┐ ╭╮
╭─┬┬┤├┼─┬─┤└┬─┬─┼┤
├┘│││└┤└┤├┤││├┤│││
│││││┌┼┐│├┤││││┌┤│
╰─┴─┤│╰─┴─┴┴┴┘╰─┴┘
────└╯────────────
Ich kann diesem Aufschrei nur beipflichten, denn zumindest in Python 3.x kann man erst nach den nötigen Modifizierungen
...seine Imports wie gewünscht ausführen:
Code: Alles auswählen
>>> def my_import(modname):
... exec('import {module}'.format(module=modname))
...
Code: Alles auswählen
>>> my_import('sys; sys.exit()')
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
@BlackJack: Warum hat dein figlet ueberlebt?! Bei mir wollte sich das Forum an nem Strich vergreifen
(Natuerlich in einem code Block)
(Natuerlich in einem code Block)
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@cofi: Ich hatte auch erst Probleme mit einer Zeile bis ich den Code-Typ explizit auf "text" gesetzt habe, also [ code=text] statt einfach nur [ code].
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Feinste Software!
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte