__iter__( )方法或__getitem__( )方法
时间: 2024-06-15 10:09:06 浏览: 122
__iter__()方法和__getitem__()方法都是Python中用于迭代对象的特殊方法。
__iter__()方法是一个迭代器方法,它返回一个迭代器对象。迭代器对象可以使用next()函数来逐个访问对象的元素。这个方法通常与__next__()方法一起使用,后者定义了迭代器对象的行为。
__getitem__()方法是一个索引方法,它允许对象通过索引访问其元素。这个方法接受一个参数,即要访问的元素的索引,并返回该索引对应的元素。这个方法通常与__len__()方法一起使用,后者定义了对象的长度。
下面是两个示例来演示这两个方法的用法:
1. 使用__iter__()方法创建一个迭代器对象[^1]:
```python
class MyIterator:
def __init__(self, data):
self.data = data
self.index = 0
def __iter__(self):
return self
def __next__(self):
if self.index >= len(self.data):
raise StopIteration
value = self.data[self.index]
self.index += 1
return value
my_list = [1, 2, 3, 4, 5]
my_iterator = MyIterator(my_list)
for item in my_iterator:
print(item)
```
输出:
```
1
2
3
4
5
```
2. 使用__getitem__()方法通过索引访问对象的元素[^2]:
```python
class MyList:
def __init__(self, data):
self.data = data
def __getitem__(self, index):
return self.data[index]
my_list = MyList([1, 2, 3, 4, 5])
print(my_list[0]) # 输出:1
print(my_list[2]) # 输出:3
print(my_list[4]) # 输出:5
```
输出:
```
1
3
5
```
阅读全文