ich folgendes zu tun:serialize/Beize eine Funktion, die in einem String definiert ist
import pickle
namespace = {}
exec('def f(x): return x', namespace)
pickle.dumps(namespace['f'])
Dies führt jedoch zu dem folgenden Fehler:
---------------------------------------------------------------------------
PicklingError Traceback (most recent call last)
<ipython-input-102-61493bb3c732> in <module>()
2 namespace = {}
3 exec('def f(x): return x', namespace)
----> 4 pickle.dumps(namespace['f'])
PicklingError: Can't pickle <function f at 0x7f2134171950>: it's not the same object as __main__.f
Das Problem, das ich will lösen: Ich habe eine Funktion im String-Format und ich muss in der Lage sein, es zu serialisieren (für die Parallelisierung).
Sie sollten erklären, was in Ihrem Code geschieht, die nicht Erwartung treffen wird. Was passiert, wenn dieser Code gerade läuft? Was erwartest du sollte passieren. Was * genau * versuchst du mit deinem Code zu erreichen? Bitte überarbeiten Sie, wie Sie ein solideres [mcve] zusammenstellen können, um Ihre Frage besser zu beantworten. – idjaw
Vielen Dank für Ihren Kommentar, ich habe die Fehlermeldung hinzugefügt. Außerdem denke ich, dass ich mein Problem ziemlich deutlich beschreibe. – johnbaltis