1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class A(dict):
def __init__(self):
dict.__init__(self)
def __getitem__(self, k):
print "A.__getitem__", k
return dict.__getitem__(self, k)
class B(A):
def __init__(self):
A.__init__(self)
if __name__ == '__main__':
b = type('_', (B,), {'_inner': dict(), 'getinner': lambda self : self._inner,
'__getitem__': lambda self, k: self._inner.__getitem__(k),
'__setitem__': lambda self, k, v : self._inner.__setitem__(k, v),
'__delitem__': lambda self, k : self._inner.__delitem__(k)})()
b[0] = 1
print "b[0]", b[0]
print b.getinner()
c = B()
c[0] = 1
print "c[0]", c[0] |
Partager