在python中,list,string,tuple可以通过使用index(obj [i])得到元素,就像C ++一样。以同样的方式,有任何方法,如覆盖运算符,以使用户定义的类' object能够通过使用square-bracket []?
来获取元素例如:
>>>obj = user_class([1,2,4])
>>>obj[0]
1
>>>obj[1]
2
user_class=list
或user_class=tuple
无法成为解决方案,因为我必须在此类中添加一系列控制代码。这个班级的工作方式与列表或元组完全不同。
有没有人知道解决方案?
答案 0 :(得分:1)
您应该在user_class
。
__getitem__
方法
class user_class:
def __init__(self, lst):
self.values = lst
def __getitem__(self, it):
return self.values[it]
或者它可以是某些基类型的子类,如list:
class user_class(list):
# your control code goes here
def shout(self):
print("AAA!")