首页 > 编程语言 >python 可迭代对象 迭代器 生成器

python 可迭代对象 迭代器 生成器

时间:2023-12-05 17:12:15浏览次数:38  
标签:__ 迭代 python self 生成器 iter studentList def

一个对象若要用for 循环 则需实现def __iter__(self, item) 或def __iter__(self, item)方法

可迭代对象 实现了def __iter__(self, item)方法  

迭代器  实现了def __iter__(self, item)和def __next__(self)方法  

迭代器一定是可迭代对象 可迭代对象不一定是迭代器

from collections.abc import Iterable,Iterator
class Student():
    def __init__(self,studentList):
        self.studentList=studentList
        self._index=0
    def __getitem__(self, item):
        return self.studentList[item]
    def __iter__(self):
        return iter(self.studentList)
    def __next__(self):
        stu=self.studentList[self._index]
        self._index+=1
        return stu


if __name__=='__main__':

    stus=Student(['aa','bb','cc','ee'])
    for stu in stus:
        print(stu)
    print(isinstance(stus,Iterable))
    print(isinstance(stus, Iterator))
    print(next(stus))

  

标签:__,迭代,python,self,生成器,iter,studentList,def
From: https://www.cnblogs.com/howhy/p/17877692.html

相关文章

  • Python开发爬虫的五大优势
    爬虫是一种广泛应用于数据获取和信息收集的技术。Python作为一种功能强大且易于学习的编程语言,具备许多优势,使其成为开发爬虫的首选语言之一。本文将介绍Python开发爬虫的五大优势,并为您提供相关实例。1.简单易用:Python语法简洁明了,易于学习和理解。相较于其他编程语言,如Java或C++,P......
  • 用 Python 开发 Web 应用程序有哪些优势
    Python作为一种多用途的编程语言,在Web应用程序开发中具有许多优势,使其成为开发人员的首选之一。以下是使用Python开发Web应用程序的几个优势:1.简单易学的语法:Python具有清晰简洁的语法结构,易于学习和理解。这使得开发者能够更快速地编写和维护Web应用程序的代码,从而提高开发效率。2......
  • 为什么 Python可以提升游戏开发效率
    Python作为一种高效且易于学习的编程语言,在游戏开发领域具有诸多优势,能够显著提升开发效率。本文将探讨Python在游戏开发中的优势,并分析其在实际应用中的广泛应用及成功案例。Python作为一种高级编程语言,具有简单易学、清晰优雅的语法结构,以及丰富的第三方库和跨平台特性,使其成为游......
  • Python开发机器人控制程序的优点
     随着科技的不断进步,机器人在各个领域的应用越来越广泛。而开发机器人控制程序是实现机器人自主运行和执行的关键。在众多编程语言中,Python作为一种高级编程语言,具有许多优点,使其成为开发机器人控制程序的理想选择。本文将介绍Python开发机器人控制程序的优点。 1简洁易读: Pyt......
  • python中级之列表推导式
    Python列表推导式是什么列表推导式是Python语言特有的一种语法结构,也可以看成是Python中一种独特的数据处理方式,它在Python中用于转换和过滤数据。其语法格式如下所示,其中[if条件表达式]可省略。[表达式for迭代变量in可迭代对象[if条件表达式]]注意:学......
  • python中级之文件操作
    引入 应用程序运行过程中产生的数据最先都是存放于内存中的,若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统,而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念,用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统完成对硬盘的具体......
  • Python Decorators Brief
    参考的URL:https://www.runoob.com/w3cnote/python-func-decorators.htmlDecorators-->Pythonic切入点:函数--函数中的函数--函数中返回函数--将函数作为参数传递给另一个函数(简单装饰器)@符号-->将装饰器放到需要被装饰的函数前;@wraps()-->函数即使被装饰器装饰,也......
  • 用Python开发自动化测试的优点有哪些
    自动化测试是软件开发中必不可少的一部分,它可以提高测试效率、降低测试成本、保证测试质量等。而Python作为一种功能强大且易于学习的编程语言,被广泛应用于自动化测试领域。本文将介绍使用Python开发自动化测试的优点,并为您提供相关实例。1.简单易用:Python语法简单、易于理解和学习......
  • 用 Python 开发网络爬虫提高数据采集效率
    随着互联网的快速发展,数据采集成为了各行各业中不可或缺的一环。而Python作为一种功能强大且易于学习的编程语言,被广泛应用于网络爬虫开发。本文将介绍使用Python开发网络爬虫的优点,并探讨如何利用Python提高数据采集效率。1.强大的库和工具支持:Python拥有许多强大的库和工具,如Beau......
  • 【C语言调用Python】Py_Finalize() 时报 GC 崩溃错误。
    Py_Finalize()时报GC崩溃错误。记一次有趣的报错随笔。报错现场在使用如下的报错代码时,在释放阶段调用Py_Finalize(),报如下Assert崩溃。原因结论在调用函数逻辑里的Exit0中,对变量pModuleDict和pClass进行了手动释放,引用计数-1(宏KLP_RELEASE),这两个变量是借用的引用变量,不......