zoukankan      html  css  js  c++  java
  • 【8.2】什么是迭代器和可迭代对象

     1 #!/user/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 from collections.abc import Iterator
     5 
     6 
     7 class Company:
     8     def __init__(self, employee_list):
     9         self.employee = employee_list
    10 
    11     def __iter__(self):
    12         return MyIterator(self.employee)
    13 
    14 
    15 class MyIterator(Iterator):
    16     def __init__(self, employee_list):
    17         self.iter_list = employee_list
    18         self.index = 0
    19 
    20     def __next__(self):
    21         # 真正返回迭代值的逻辑
    22         try:
    23             word = self.iter_list[self.index]
    24         except IndexError:
    25             raise StopIteration
    26         self.index += 1
    27         return word
    28 
    29 
    30 if __name__ == '__main__':
    31     company = Company(['tom', 'bob', 'jane'])
    32     my_itor = iter(company)
    33     while True:
    34         try:
    35             print(next(my_itor))
    36         except StopIteration:
    37             print('迭代完成')
    tom
    bob
    jane
    迭代完成
    

    可迭代对象

      可以被 for in 遍历的对象

    迭代器:

      迭代器是一个对象

      迭代器只能使用一次

      迭代器一定是一个可迭代对象,可迭代对象不一定是一个迭代器,迭代器是一个对象class

  • 相关阅读:
    day04
    day02
    day01
    if语句用户交互字符串
    python安装和pycharm安装教程
    day1预习
    博客园的使用
    python day 3
    从cbv到fbv:用函数写视图与用类写视图的区别(drf与restful)
    resful规范: 进行数据交换时的代码潜规则
  • 原文地址:https://www.cnblogs.com/zydeboke/p/11277383.html
Copyright © 2011-2022 走看看