5.4.3 用超类的构造函数 在使用构造函数对实例对象进行初始化时,可以在子类的构造函数中调用超类的构造函数。 supper用于在子类作用引用操作。 5.4.4 多重继承 多重继承指子类可以同时继承多个超类。 如果超类中存在同名的属性或方法,Python按照从左到右的顺序在超类中搜索方法。 5.5 运算符的重载 运算符重载是通过实现特定的方法是类的实例对象支持Python的各种内置操作。表5-1列出了部分运算符重载方法。 重载运算符就是在类中定义相应的方法,当使用实例对象执行相关运算时,则调用对应方法。 本节主要讲述: 加法运算重载 索引和分片重载 自定义迭代器对象 定制对象的字符串形式 5.5.1 加法运算符重载 加法运算通过实现__add__方法来完成重载,当两个实例对象执行加法运算时,自动调用__add__方法。 5.5.2 索引和分片重载 与索引和分片有关的重载方法包括: __getitem__ __setitem__ __delitem__ 1. __getitem__方法 在对实例对象执行索引、分片或for迭代时,调用__getitem__方法。 2. __setitem__方法 在通过赋值语句给索引或分片赋值时,调用__setitem__方法,实现对序列对象的修改。 3. __delitem__方法 __delitem__方法重载del运算,即删除索引或分片。 5.5.3 自定义迭代器对象 实现了__getitem__方法的实例对象可用于for循环迭代。 Python在执行迭代操作时,总是优先调用__iter__方法,若没有才调用__getitem__方法。 __iter__方法返回一个迭代器对象,然后Python可重复调用迭代器对象的__next__执行迭代操作,直到发生StopIteration异常。 Python的内置函数next()本质上时通过调用的对象的__next__方法来完成。 1.迭代器对象只能使用一次 默认情况下,自定义的迭代器对象只能使用一次,迭代完成后,必须创建新的迭代器对象才可开始新的迭代操作。 2.有多个迭代器的对象 map和zip函数生成的对象时单迭代对象;而range、set、list等其他的内置函数生成的对象,则支持多个迭代器。 单迭代器和多迭代器与实现__iter__方法的方式有关。 若在__iter__方法直接返回了self对象,即保持了迭代器对象状态。当迭代结束,再次返回迭代器对象时,得到的是已迭代结束的迭代器对象。 如果要得到新的迭代器,在__iter__方法中先恢复迭代器到初始状态即可。 5.5.4 定制对象的字符串形式 重载__repr_和__str__方法可定义对象转换为字符串的形式。在执行print()、str()、repr()以及交互模式下直接显示对象时,会调用__repr_或__str__方法。 1.只重载__str__方法 如果只重载了__str__方法,只有str()和print()函数可调用__str__方法进行转换。 2.只重载__repr__方法 重载__repr__方法,可以保证各种操作下都能将正确获得实例对象的自定义的字符串形式。 3.同时重载__str__和__repr__方法 如果同时重载了__str__和__repr__方法,则str()和print()函数调用__str__方法,交互模式下直接显示对象和repr()函数调用__repr__方法。 5.6 模块中的类 可以将模块中的类导入到当前模块使用。导入的类是模块对象的一个属性,就像模块中的函数一样,可以像调用模块函数一样来调用类对象。 本节主要讲述: 使用模块中的类 本章完 Python 3基础教程 出版社或系部名称 主讲:授课教师 姓名 第5章 面向对象编程 面向对象是现代高级程序设计语言的特点之一。在前面各章中,已多次使用到“对象”这个概念。本章将深入对象的本质,学习对象的实现——类。类为Python提供了面向对象编程功能。 作为初学者而言,面向对象编程并不是必须的。虽然在Python内部,对象是无处不在。但使用Python实现系统并不是必须使用面向对象编程。面向对象编程通常在开发大型系统时效率更高。 本章主要内容 对象的属性和方法 理解Python的面向对象 定义和使用类 1 2 3 类的基础 4 运算符重载 模块中的类 6 5 5.1 理解Python的面向对象 Python的面向对象技术支持类、对象实例、继承、重载、多态等面向对象特点,但与C++、Java等支持的面向对象又有所不同。 本节主要讲述: Python的类 Python中的对象 5.1.1 Python的类 类使用class语句来定义 在类中,用赋值语句创建变量
python 高中生物 高中python教案
转载文章标签 python 高中生物 python教程ppt第五章 迭代器 Python 迭代 文章分类 Python 后端开发
-
前端基础教案-1
CSS选择器基础用法
网页设计 html -
高中生的职业规划
这是土盐的第124篇原创文章1大家好,我是土盐。高中生,都知道,君子性非异也,善假于物也的道理。那么,高中毕业,没考上大学,如何择业呢?2我这里有一个不成熟的小建议。去程序员集中的地方去找...
java windows python cmd 编程语言