メソッド __ getitem__ をリロードして、まだ存在しないキー値を作成することはできますか?
私は試します:
class Dict_(dict):
def __getitem__(self, key):
if key in self:
self[key] = {}
return self[key]
else:
return self[key]
スタック オーバーフローが発生する理由は理解できますが、オーバーフローが発生しない理由はわかりません
class Dict_(dict):
def __getitem__(self, key):
if key not in self:
self[key] = {}
return self.get(key)
else:
return self.get(key)
説明を参照し、get を使用するときに __ getitem__ - D[k] も使用することを確認してください。
D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
私がやりたいことをする方法を教えてください__getitem__
。