Nun, das ist ein bisschen, ähm ... nicht pythonisch ... hässlich ... hackisch ...
Hier ist ein Codeausschnitt, der davon ausgeht, dass Sie ein Wörterbuch aller lokalen Variablen erstellen möchten, die Sie erstellen, nachdem ein bestimmter Prüfpunkt erstellt wurde:
checkpoint = [ 'checkpoint' ] + locals().keys()[:]
var_keys_since_checkpoint = set(locals().keys()) - set(checkpoint)
new_vars = dict()
for each in var_keys_since_checkpoint:
new_vars[each] = locals()[each]
Beachten Sie, dass wir den 'Checkpoint'-Schlüssel explizit zu unserer Erfassung des hinzufügen. locals().keys() Ich nehme auch explizit einen Teil davon, obwohl dies in diesem Fall nicht erforderlich sein sollte, da die Referenz abgeflacht werden muss, um sie dem [' Checkpoint hinzuzufügen ' ] aufführen. Wenn Sie jedoch eine Variante dieses Codes verwenden und versuchen, die ['checkpoint'] + portion (because that key was already inlocal () , for example) ... then, without the [:] slice you could end up with a reference to thelocal (). Keys () `zu verknüpfen, deren Werte sich beim Hinzufügen von Variablen ändern würden.
Nebenbei kann ich mir keine Möglichkeit vorstellen, so etwas wie new_vars.update()mit einer Liste von Schlüsseln aufzurufen , die hinzugefügt / aktualisiert werden sollen. Die forSchleife ist also am tragbarsten. Ich nehme an, dass ein Wörterbuchverständnis in neueren Versionen von Python verwendet werden könnte. Dies scheint jedoch nichts weiter als eine Runde Code-Golf zu sein.