Hi,
ich habe vor kurzem die nette python Function 'eval' entdeckt und habe nun darüber nachgedacht, ob mir ihr Einsatz bei meiner Aufgabe helfen würde.
Und zwar müsste ich eine Sprache, die an C angelehnt ist, interpretieren und ausführen. Nun könnte ich einen eigenen Interpreter dafür schreiben, aber ich dachte, dass die Transformation in python code und dann die Benutzung von eval eventuell schnellere Ausführungszeiten zur Folge hat. Was macht eval intern? Parsed es den übergebenen String und führt all die Übersetzungsarbeit selbst durch, oder gibt es einfach den String an den python Interpreter weiter und überlässt ihm somit die "schmutzige Arbeit"?
(Bei genauerem Nachdenken macht eigentlich nur letzteres Sinn, denn sonst würde ja 2mal interpretiert werden... Aber egal, mich interessiert trotzdem was ihr dazu denkt).
lunas
eval intern
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Genauer "Ausdrücke".Volvic hat geschrieben:ich denke dafür musste exec verwendet, eval kann nur einzelne "befehle".
Warum? Nachdem der übergebene String kompiliert ist (und das geht sehr schnell), ist die Ausführung genauso schnell oder langsam wie die anderer Codeteile.exec ist nicht sonderlich schnell
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Man könnte aber auch direkt Python-Bytecode generieren, so wie es einige Templatesprachen machen. Oder Java-Bytecode, wie es Jython und Groovie machen..
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice