Frage

Ich habe diesen Code-Stück:

generasacodicetagpre.

Von der Funktion 'Func' würde ich gerne extrahieren:

generasacodicetagpre.

oder so etwas wie:

generasacodicetagpre.

bearbeitet

etwas Hintergrund, um zu erklären, warum ich denke, dass ich das tun muss

Ich möchte den Code einer trivialen Python-Funktion in eine Tabellenkalkulationsformel konvertieren.

also muss ich konvertieren:

generasacodicetagpre.

an:

generasacodicetagpre.

Beispielstrecke http://img441.imageshack.us/img441/1451/84516405. png

** erneut bearbeitet *

was ich bisher habe.

Das Programm unter den Ausgängen:

generasacodicetagpre.

Der Code:

generasacodicetagpre.

Ich habe hier einige Ressourcen gefunden: Python-Internals: Arbeit mit Python Asts Ich packte ein funktionierendes Codegen-Modul hier . .

War es hilfreich?

Lösung

generasacodicetagpre.

Ausgang:

generasacodicetagpre.

Andere Tipps

Ich bin nicht sicher, warum Sie Namen zurückgreifen müssen, eine sehr grobe Methode, um alle Namen und Punkte in der Funktion zu erhalten, ist

generasacodicetagpre.

Ausgang:

generasacodicetagpre.

Kann man sein, dass Sie sich verbessern können, indem Sie das Syntaxbaum elegant lesend lesen, ich benutze Parser anstelle von AST-Modul, weil ich auf Python 2.5

bin

Ich habe das neue AST-Modul noch nicht benutzt, aber ich habe Code, der den älteren Compiler verwendet, um etwas Ähnliches zu erreichen:

generasacodicetagpre.

Code leicht paraphrasiert, hätte ich vielleicht unbeabsichtigte Bugs eingeführt.Ich hoffe, das gibt Ihnen die allgemeine Idee: Sie müssen sowohl Name als auch Getattr-Knoten besuchen und gepunktete Namen erstellen und damit auch mit der Tatsache befassen, dass Sie auch alle Zwischenwerte sehen (z. B. "foo" und "foo.bar")).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top