- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ch09 类和对象 本章要点: 面向对象概念 类对象和实例对象 属性 方法 继承 对象的特殊方法 对象的引用、浅拷贝和深拷贝 面向对象概念 封装、继承和多态 对象的定义 某种事物的抽象(功能) 抽象原则包括数据抽象和过程抽象两个方面 数据抽象-定义对象属性;过程抽象-定义对象操作 封装 把客观事物抽象并封装成对象 继承 允许使用现有类的功能,并在无需重新改写原来的类的情况下,对这些功能进行扩展 多态性:对象可以表示多个类型的能力 类和对象 类与对象的关系~车型设计和具体的车 类的声明 【例9.1】定义类Person1(Person1.py) 对象的创建和使用 【例9.2】实例对象的创建和使用示例 属性(1) 类中定义的成员变量 实例属性 通过self.变量名定义的属性 【例9.3】定义类Person2。定义成员变量(域) 类属性:类本身的变量 【例9.4】定义类Person3。定义类域和类方法 私有属性和公有属性 两个下划线开头,但是不以两个下划线结束的属性是私有的(private),其他为公共的(public) 【例9.5】私有属性示例(private.py) 属性(2) @property装饰器 【例9.6】property装饰器示例1 【例9.7】property装饰器示例2 【例9.8】property装饰器示例3 特殊属性(Special Attributes) 表9-1 Python特殊属性 自定义属性(Custom Attributes) 【例9.9】自定义属性示例 方法 【例9.10】实例方法示例(PersonMethod.py)。定义类Person4,创建其对象,并调用对象函数 静态方法(@staticmethod) 声明属于与类的对象实例无关的方法 静态方法不对特定实例进行操作,在静态方法中访问对象实例会导致错误 静态方法通过装饰器@staticmethod来定义 静态方法一般通过类名来访问,也可以通过对象实例来调用 【例9.11】静态方法示例(TemperatureConverter.py)。摄氏温度与华氏温度之间的相互转换 类方法(@classmethod) 允许声明属于类本身的方法,即类方法 类方法不对特定实例进行操作,在类方法中访问对象实例属性会导致错误 类方法通过装饰器@classmethod来定义,第一个形式参数必须为类对象本身,通常为cls 类方法一般通过类名来访问,也可通过对象实例来调用 【例9.12】类方法示例(classMethod.py) __init__方法(构造函数)和__new__方法 __new__方法是一个类方法,创建对象时调用,返回当前对象的一个实例,一般无需重载该方法 __init__方法即构造函数(构造方法),用于执行类的实例的初始化工作。创建完对象后调用,初始化当前对象的实例,无返回值 【例9.13】__init__方法示例1(PersonInit.py) 【例9.14】__init__方法示例2(PointInit.py)。定义类Point,表示平面坐标点 __del__方法(析构函数) __del__方法即析构函数(析构方法),用于实现销毁类的实例所需的操作,如释放对象占用的非托管资源(例如:打开的文件、网络连接等) 默认情况下,当对象不再被使用时,__del__方法运行,由于Python解释器实现自动垃圾回收,即无法保证这个方法究竟在什么时候运行 通过del语句,可以强制销毁一个对象实例,从而保证调用对象实例的__del__方法 【例9.15】__del__方法示例(PersonDel.py) 私有方法与公有方法 两个下划线开头,但不以两个下划线结束的方法是私有的(private),其他为公共的(public) 以双下划线开始和结束的方法是Python的专有特殊方法。不能直接访问私有方法,但可以在其他方法中访问 【例9.16】私有方法示例(BookPrivate.py) 方法重载 可以定义多个重名的方法,只要保证方法签名是唯一的 方法签名包括三个部分:方法名、参数数量和参数类型 【例9.17】方法重载示例1(Person21Overload.py) 【例9.18】方法重载示例2(Person22Overload.py) 继承 派生类:Python支持多重继承,即一个派生类可以继承多个基类 声明派生类时,必须在其构造函数中调用基类的构造函数 【例9.19】派生类示例(DerivedClass.py)。创建基类Person,包含两个数据成员name和age;创建派生类Student,包含一个数据成员stu_id 查看继承的层次关系 通过类的方法mro()或类的属性__mro__可以输出其继承的层次关系 【例9.20】查看
您可能关注的文档
- 计算机应用基础之五【第5章电子表格处理软件应用51-53】.ppt
- 计算药物分析(药学与生物信息学)第三章.ppt
- 记叙文考点与答题技巧.ppt
- 记叙文人物形象分析.pptx
- 记叙文阅读常见考点.ppt
- 记叙文阅读考点详解.docx
- 技工院校师资培训(三向).ppt
- 技术标(可行性).doc
- 技术标(园林绿化暗标).doc
- 技术标部分(含已改)(含声屏障、护坡、边坡绿化.doc
- 2024-2025学年陕西省西安市碑林区西北工大附中九年级(上)开学数学试卷+答案解析.pdf
- 2024-2025学年浙江省金华市东阳市横店八校联考八年级(上)开学数学试卷+答案解析.pdf
- 2023-2024学年湖北省咸宁市咸安区八年级(下)期末数学试卷+答案解析.pdf
- 2024-2025学年内蒙古乌兰察布市集宁区亿利东方学校八年级(上)开学数学试卷+答案解析.pdf
- 2023-2024学年黑龙江省哈尔滨市南岗区萧红中学八年级(下)期中数学试卷(五四学制)+答案解析.pdf
- 2023-2024学年湖南省岳阳市岳阳楼区弘毅新华中学八年级(下)入学数学试卷+答案解析.pdf
- 2024-2025学年山东省德州市宁津县张宅中学八年级(上)开学数学试卷+答案解析.pdf
- 2023-2024学年湖北省武汉市江夏区光谷实验中学八年级(下)开学数学试卷+答案解析.pdf
- 2024-2025学年云南省红河州高二上学期开学检测数学试卷+答案解析.pdf
- 2024-2025学年浙江省宁波市部分学校九年级(上)开学数学试卷+答案解析.pdf
文档评论(0)