θέλω να αποθηκεύσω την instance μιας κλάσης.
Ποιος είναι ο καλύτερος τροπος να γίνει? Συνήθως έκανα τον 1ο αλλά ο 2ος είναι πιο pythonic. Υπάρχει κανείς λόγος να μην ενσωματώσω το pickling σα μέθοδο της κλάσης? Υπάρχει κάποιο πρόβλημα / κίνδυνος με το να δώσω "cPickle.dump(self, fname)"?
class C(object):
def __init__(self, prop1, prop2):
self.prop1 = prop1
self.prop2 = prop2
def do_something(self, args):
pass
def pickle_instance(self, fname):
try:
import cPickle
except:
print("Couldn't load cPickle")
else:
with open(fname, "w"):
cPickle.dump(self, fname)
a = C(1, 2)
a.do_something(3)
# First way
import cPickle
with open("pickle.txt", "w"):
cPickle.dump(a)
# Second way
a.pickle_instance("pickle.txt")
with open("pickle.txt", "w"):
cPickle.dump(a)