2023学年完整公开课版实例化类_第1页
2023学年完整公开课版实例化类_第2页
2023学年完整公开课版实例化类_第3页
2023学年完整公开课版实例化类_第4页
2023学年完整公开课版实例化类_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

实例化类实例化类

实例化案例11实例化案例—创建

FileInfo

实例2在Python中对类进行实例化很直接。要对类进行实例化,只要调用类(就好像它是一个函数),传入定义在__init__方法中的参数。返回值将是新创建的对象。1实例化案例—创建

FileInfo

实例3(1)你正在创建FileInfo类(定义在fileinfo模块中)的实例,并且将新创建的实例赋值给变量f。你传入了一个参数,/music/_singles/kairo.mp3,它将最后作为在FileInfo中__init__方法中的filename参数。(2)每一个类的实例有一个内置属性,__class__,它是对象的类。(注意这个表示包括了在我机器上的实例的物理地址,你的表示不会一样。)Java程序员可能对Class类熟悉,这个类包含了像getName和getSuperclass之类用来得到一个对象元数据信息的方法。在Python中,这类元数据可以直接通过对象本身的属性,像__class__、__name__和__bases__来得到。41实例化案例—创建

FileInfo

实例(3)你可以像对函数或模块一样来访问实例的docstring。一个类的所有实例共享相同的docstring。(4)还记得什么时候__init__方法将它的filename参数赋给self["name"]吗?哦,答案在这。在创建类实例时你传入的参数被正确发送到__init__方法中(当我们创建类实例时,我们所传递的参数被正确地发送给__init__方法(随同一起传递的还有对象的引用,self,它是由Python自动添加的)。2实例化案例—垃圾回收5如果说创建一个新的实例是容易的,那么销毁它们甚至更容易。通常,不需要明确地释放实例,因为当指派给它们的变量超出作用域时,它们会被自动地释放。内存泄漏在Python中很少见。2实例化案例—垃圾回收6(1)每次leakmem函数被调用,你创建了FileInfo的一个实例,将其赋给变量f,这个变量是函数内的一个局部变量。然后函数结束时没有释放f,所以你可能认为有内存泄漏,但是你错了。当函数结束时,局部变量f超出了作用域。在这个地方,不再有任何对FileInfo新创建实例的引用(因为除了f我们从未将其赋值给其它变量),所以Python替我们销毁掉实例。(2)不管我们调用leakmem函数多少次,决不会泄漏内存,因为每一次,Python将在从leakmem返回前销毁掉新创建的FileInfo类实例。2实例化案例—垃圾回收7对于这种垃圾收集的方式,技术上的术语叫做“引用计数”。Python维护着对每个实例的引用列表。在上面的例子中,只有一个FileInfo的实例引用:局部变量f。当函数结束时,变量f超出作用域,所以引用计数降为0,则Python自动销毁掉实例。在Python的以前版本中,存在引用计数失败的情况,这样Python不能在后面进行清除。如果你创建两个实例,它们相互引用(例如,双重链表,每一个结点有都一个指向列表中前一个和后一个结点的指针),任一个实例都不会被自动销毁,因为Python(正确)

温馨提示

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

评论

0/150

提交评论