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])
原文地址:https://www.cnblogs.com/wangjikun/p/6110344.html