如何给我们直接创建的类加上索引?和len方法?
我们知道numpy也是一个类,在原始python中,我们无法对一个类进行直接索引,那么numpy是怎么做到的呢?
import numpy as np
a=np.arange(1,10)
print(a[1])
这个可以直接运行
而这个会报错。
正确做法
在我们定义一个类的时候我们可以定义__getitem__方法,这个可以让我们直接使用索引方法,例如a[1]这样,定义__len__方法就是默认可以使用len()方法。
class fun():def __init__(self,a):self.str=a.split(',')def __getitem__(self, item):result=self.str[item]return resultdef __len__(self):return len(self.str)cl=fun('1,2,3,4,5,6')
print('索引:',cl[1])
print('长度',len(cl))
并且我们可以在__getitem__方法中操作,使返回的内容是我们设定好的内容。