別のインスタンスのシリアル化されたデータから読み取ることができるクラスを定義したいと考えています。簡略化されたコードは次のとおりです。
class MyClass(list):
def __init__(self,**kwargs):
if kwargs.has_key('fdata'):
f = open(kwargs['fdata'],'r')
self = pickle.load(f)
print len(self) #prints 320
f.close()
...
a = MyClass(fdata='data.dat')
print len(a) #prints 0
これは私が得る出力です:
320
0
私が抱えている問題は、内部のすべての要素を読み取ることができるにもかかわらず、返されるインスタンスが常に空であること__init__()
です。何が原因でしょうか?