__getitem__在定义上可以理解为:把类中的属性定义为序列,可以使用__getitem__()函数输出序列属性中的某个元素.
如果单纯的对类进行实例化,并不会调用__getitem__,代码示例:
class datasets:
def __init__(self, name, age):
self.name = name
self.age = age
def __getitem__(self, key):
return self.name
a = datasets('wang', 23)
print(a)
其输出为 实例化的存储地址
如果稍加改动输出的实例化对象,代码示例:
class datasets:
def __init__(self, name, age):
self.name = name
self.age = age
def __getitem__(self, key):
return self.name
a = datasets('wang', 23)
print(a[1])
输出为: wang
可以看出,调用了__getitem__方法
以下是更直观的例子
class datasets:
def __init__(self, name, age):
self.name = name
self.age = age
def __getitem__(self, key):
return 'key:{}'.format(key)
a = datasets('wang', 23)
print(a[1])
输出为 key:1, 如果更改输出行,代码如下:
class datasets:
def __init__(self, name, age):
self.name = name
self.age = age
def __getitem__(self, key):
return 'key:{}'.format(key)
a = datasets('wang', 23)
print(a[2])
输出为 key: 2