Ich versuche, deepcopy
(aus dem copy
-Modul) zu verwenden, um einen Knotenbaum aus dem ast
-Modul zu kopieren.
Das scheint nicht zu funktionieren. Ich bekomme seltsame Fehler wie TypeError: required field "name" missing from FunctionDef
, wenn ich das kopierte Ergebnis verwende (und ich habe es überprüft; es fehlt wirklich im kopierten Knoten), also hat es sie nicht korrekt kopiert.
Gibt es einen Trick, den ich dazu bringen kann? Oder vielleicht fehlt mir etwas?
Tut mir leid, ich habe mich geirrt. copy.deepcopy
scheint korrekt zu funktionieren. Der Grund, warum ich dachte, es würde nicht funktionieren, liegt an diesem sehr merkwürdigen Verhalten:
Dies gibt None
in PyPy zurück. Wahrscheinlich ein Fehler, weil ich in CPython 2.6 foo
bekomme. Seltsamerweise, in PyPy, wenn ich name=None
aus dem Aufruf ast.FunctionDef
entferne, bekomme ich auch foo
als Ausgabe.
Ich habe einen Fehlerbericht für PyPy dazu erstellt.
Tags und Links python deep-copy abstract-syntax-tree copy