一、Python :item系列(__getitem__ __setitem__ __delitem__)
class B: def __str__(self): return ‘123456‘ def __getitem__(self, item): print(self, item) return getattr(self, item) def __setitem__(self, key, value): print(self, key, value) setattr(self, key, value) def __delitem__(self, key): print(self, key) delattr(self, key) b = B() b[‘k‘] = ‘v1‘ print(b[‘k‘]) # del b[‘k‘] print(b[‘k‘]) print(b)
运行结果:
123456 k v1
123456 k
v1
123456 k
v1
123456
二、item系列操作列表
class B: def __init__(self, lst): self.lst = lst def __getitem__(self, item): return self.lst[item] def __setitem__(self, key, value): self.lst[key] = value def __delitem__(self, key): self.lst.pop(key) b = B([‘111‘,‘222‘,‘333‘,‘444‘,‘555‘]) print(b.lst[0]) print(b[0]) b[0] = ‘1111‘ print(b.lst) del b[1] print(b.lst)
运行结果:
111
111
[‘1111‘, ‘222‘, ‘333‘, ‘444‘, ‘555‘]
[‘1111‘, ‘333‘, ‘444‘, ‘555‘]
python:item系列(__getitem__ __setitem__ __delitem__)
原文:https://www.cnblogs.com/codinglifemrgao/p/14439485.html