0
を引き起こしている私はhttps://stackoverflow.com/a/41112823/5618523ここで推奨されたものを試してみましたが、私はまだ、このクラスのポイントは、時に辞書にすでに項目のための関数を適用すると仮定されていることである問題は、なぜ、この再帰エラーに
class AppendiveDict(c.OrderedDict):
def __init__(self,func,*args):
self.func = func
c.OrderedDict.__init__(self,args)
def __setitem__(self, key, value,):
if key in self:
self[key] = self.func(self[key])
else:
c.OrderedDict.__setitem__(self,key,value)
a = AppendiveDict((lambda y: y + "sdf"),("a","b"),("c","d"),("e","f"),("a","b"))
a
を持っていますアイテムを再エンコーディングします。私はc.OrderedDict後self.funcを置く.IF
<ipython-input-15-b4bd349c86bf> in __init__(self, func, *args)
5 def __init__(self,func,*args):
6 self.func = func
----> 7 c.OrderedDict.__init__(self,args)
8 def __setitem__(self, key, value,):
9 if key in self:
<ipython-input-15-b4bd349c86bf> in __setitem__(self, key, value)
8 def __setitem__(self, key, value,):
9 if key in self:
---> 10 self[key] = self.func(self[key])
11 else:
12 c.OrderedDict.__setitem__(self,key,value)
RecursionError Traceback (most recent call last)
<ipython-input-15-b4bd349c86bf> in <module>()
11 else:
12 c.OrderedDict.__setitem__(self,key,value)
---> 13 a = AppendiveDict((lambda y: y + "sdf"),("a","b"),("c","d"),("e","f"),("a","b"))
14 a
数3は、ちょうど を繰り返します。
(self、args)それはself.funcが存在しないという属性エラーを引き起こします。
'self [key] = xxx'は、無限再帰である' self .__ setitem __(key、xxx) 'を呼び出します。 – thebjorn