hier mal etwas Pseudo-Code einer Anwendung des Pickleprotokols, weil schon einige Male Zweifel an dessen Nützlichkeit aufgetaucht sind


Code: Alles auswählen
import pickle
class SomeClass:
def __init__(self, name, somedata):
self.name = name
self.somedata = somedata
#und was man sonst noch so in __init__ machen kann
def toFile(self, fname):
pickle.dump(self, open(fname, 'wb'), 2) #binäres Picklingprotokoll
#Python2.4 Syntax:
@classmethod
# oder @staticmethod , wenn 'cls' nicht gebraucht wird
def fromFile(cls, fname):
return pickle.load(open(fname, 'rb'))
#das zurückgegebene Objekt entspricht der Klasseninstanz
#weiteres Rummachen mit cls ist also unnötig
#oder classmethod-Definition in Python2.3 Syntax
#fromFile = classmethod(fromFile)
Code: Alles auswählen
from SomeClass import SomeClass
x = SomeClass(name="somename",somedata="somedata")
x.toFile('test.dat')
#raus aus Python und wieder rein
from SomeClass import SomeClass
x = SomeClass.fromFile('test.dat')
Gruß,
Christian
edit: Vorschläge vom 27.10.07 eingearbeitet.
edit: nochmals korrigiert am 28.10.07
edit: Korregiert am 29.10.07