图解Python面向对象课件_第1页
图解Python面向对象课件_第2页
图解Python面向对象课件_第3页
图解Python面向对象课件_第4页
图解Python面向对象课件_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图解Python面向对象图解Python面向对象本章主讲内容1.类对象的内存分析图2.类对象所包含的内容3.创建实例对象的执行过程4.面向对象的三大特征5.动态语言与静态语言之间关于多态的区别6.特殊方法7.对象的引用计数本章主讲内容1.类对象的内存分析图Python一切皆对象Python一切皆对象类对象Python中类的定义对象的三个组成部分标识类型值属性方法内置函数dir()获得类对象或实例对象所有可以访问的属性或方法的列表class

Person(object):

pass类对象Python中类的定义classPerson(o类对象的结构类的结构方法实例方法类方法静态方法类对象的结构类的结构动态绑定属性和方法Python是动态语言,在创建实例对象之后,可以动态的绑定属性和或方法特殊属性__slots可以提高属性的访问速度访问实例对象的属性是通过访问实例对象的特殊属性__dict__来实现的在类对象中定义了特殊属性__slots__,实例对象就不会再创建特殊属性__dict__因此在类对象中定义特殊属性__slots__可以减少内存消耗动态绑定的属性和方法只能是__slots__中存在的字符串元素重新__str__()方法,显示属性值动态绑定属性和方法Python是动态语言,在创建实例对象之后创建实例对象的执行过程自动调用特殊函数__new__创建对象自动调用特殊函数__init__初始化实例对象的属性创建实例对象的执行过程自动调用特殊函数__new__创建对面向对象的三大特征面向对象的三大特征封装:提高程序的安全性继承:提高代码的复用性多态:提高程序的扩展性和可维护性继承的特性:多继承性和传递性MRO全称为MethodResolutionOrder(方法解析顺序)它指的是对于一颗类继承树,当调用最底类对象所对应的实例对象的方法时,Python解释器在类继承树上搜索方法的顺序。可以通过最底层类对象的mro()方法或特殊属性__mro__去查看类的继承关系面向对象的三大特征面向对象的三大特征封装封装:属性的私有化,但是Python没有明确的权限修饰符,完全靠程序员自觉,但是私有属性可以使用__开头,不希望被访问的方法也可以使用__定义提供getter和setter方法对__定义的属性进行赋值和取值封装封装:属性的私有化,但是Python没有明确的权限修饰符多态多态:简单地说,多态就是“具有多种形态”它指的是“即便不知道一个变量所引用的对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象的类型,动态地决定调用哪个对象中的方法。如果子类不存在指定名称的方法,回到父类中去查找,如果在父类中找到了,则调用父类中的方法。多态多态:静态语言和动态语言关于多态的区别静态语言静态语言,实现多态有三个必要条件1.继承2.重写3.父类类型的变量引用父类或子类类型的实例对象动态语言

动态语言的多态崇尚“鸭子类型”:当看到一只鸟走起来像鸭子、游泳起来像鸭子,叫起来也像鸭子,那么这只鸟就可以被称为鸭子。在鸭子类型中,我们并不关心对象是什么类型,到底是不是鸭子,只关心对象的行为。静态语言和动态语言关于多态的区别静态语言图解Python面向对象课件特殊方法

为什么两个整数或字符串可以相加?

为什么字符串和列表可以调用内置函数len()获取字符串中字符的个数或列表中元素的个数?

为什么字符串、列表、字典等可以使用for-in进行迭代呢?print(10+20)

print(len('Python'))

print(len([10,203,30]))

foriin'Python':

print(i)

forkeyin{'a':1,'b':2}:

print(key)自定义类的实例对象可以执行这些操作吗?特殊方法

为什么两个整数或字符串可以相加?print(

自定义类对象实列特殊方法实现__add__()方法,可以实现两个自定义类对象的实例对象之间的相加操作实现__len__()方法,可以实现计算自定义对象的长度实现__iter__()方法和__next__()方法可以实现自定义类对象的实例对象的的迭代遍历自定义类对象实列特殊方法实现__add__()方法,可以实

对象的引用计数对象引用加1的情况

对象赋值给变量引用对象的变量赋值给另一个变量对象作为容器(列表,集合)中的元素对象作为函数调用时的实参对象引用减1的情况对象离开它的作用域,例如:对象所在的函数执行完毕对象的引用被显示销毁引用对象的变量被赋予新的对象从容器中删除对象,或对象所在的容器被销毁对象的引用计数对象引用加1的情况

对象的引用计数对象引用减1的情况对象离开它的作用域,例如:对象所在的函数执行完毕对象的引用被显示销毁引用对象的变量被赋予新的对象从容器中删除对象,或对象所在的容器被销毁对象的引用计数对象引用减1的情况本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论