python实现从生成器中取固定角标的元素
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class A:
def __init__(self):
def r():
i = 1
while True:
if i % 2 == 1:
yield i
i += 1
self._range = r()
def __getitem__(self, given):
l = []
start = given.start
stop = given.stop
step = given.step
if start is None:
start = 0
if step is None:
step = 1
i = 0
while i < stop:
r = next(self._range)
if i>= start and i % step== 0:
l.append(r)
i+= 1
return l
print(A()[2:6:2])