1. 程式人生 > >【python】迭代器協議iterable iterator

【python】迭代器協議iterable iterator

from collections.abc import Iterator

class Company(object):
    def __init__(self, employee_list):
        self.employee = employee_list

    def __iter__(self):
        return MyIterator(self.employee)

    # def __getitem__(self, item):
    #     return self.employee[item]


class MyIterator(Iterator)
:
def __init__(self, employee_list): self.iter_list = employee_list self.index = 0 def __next__(self): #真正返回迭代值的邏輯 try: word = self.iter_list[self.index] except IndexError: raise StopIteration self.index += 1 return
word if __name__ == "__main__": company = Company(["tom", "bob", "jane"]) my_itor = iter(company) # while True: # try: # print (next(my_itor)) # except StopIteration: # pass # next(my_itor) for item in company: print (item)