0323第三节特殊方法属性_第1页
0323第三节特殊方法属性_第2页
0323第三节特殊方法属性_第3页
0323第三节特殊方法属性_第4页
0323第三节特殊方法属性_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

Python面向对象教室讲师:岛歌时间:2018年3月教学监督热线教学监督热线01020304知识点一:初始化、析构知识点二:字符串表示知识点三:属性访问知识点四:特殊属性本节知识点阶段一初始化、析构教学监督热线“初始化”问题引入010203问题一:能否在实例化的时候就初始化?问题二:那么如何在实例化的时候

传入必要的信息?问题三:这样有什么意义?从面向对象的角度考虑:一个孩子出生,就有性别

还是出生以后再给他一个性别“初始化”特殊方法在Python中有很多以双下划线开头且以双下划线结尾的固定方法。他们会在特定的时机被触发执行。__init__就是其中之一,它会在实例化之后自动被调用。以完成实例的初始化。__init__的参数传递过程实例化产生一个类的实例Python自动调用实例.__init__(参数)转换为类.__init__(实例,参数)“析构”问题引入0102问题一:能否在对象被销毁的时候,

获得执行特定任务的机会?问题二:通常我们会执行怎样的任务?提示开发者,对象被销毁了,方便调试。进行以写必要的清理工作。基于变量计数的对象销毁机制当没有一个变量指向某个对象的时候,Python会自动销毁这个对象,以便回收内存空间。del关键字,可以删除一个变量的指向。再来看一个__del__

的例子阶段二字符串表示教学监督热线字符串表示问题引入010203问题一:能否在不需要专门调用一个描述方法

的前提下就展示实例信息?问题二:在交互模式下输出的交互信息与

直接print的信息有些不同,

背后的原理是?问题三:我们该如何使用这种机制?对使用者使用友好的__str__对开发者调试友好的__repr__向使用者提供尽可能简洁且有用的信息。向开发者提供接近创建时的信息。直接输出实例对象print

函数会输出__str__

的返回值。如果没有定义__str__

,会输出__repr__的返回值。在shell模式下展示__repr__的返回值。__str__

与__repr__该如何抉择strrepr尽可能的提供简洁且有用的信息。让用户尽可能吸收到必要的信息。尽可能向开发者提供创建该对象时的必要信息。让开发者可以直接通过复制粘贴来重建对象。阶段三“属性操作”内置函数教学监督热线getattr(object,

’name’[,

default])hasattr(object,

’name’)setattr(object,

’name’,

value)=valuedelattr(object,

’name’)getattr/

hasattr/setattr/delattrdefhasattr(object,name_string):

try:

getattr(object,name_string)returnTrue

except

AttributeError:returnFalse运行时决定操作的属性了!除此之外,hasattr还可以避免,因为属性没有,而导致的报错阶段四其他常用的特殊属性教学监督热线其他需要了解的特殊属性特殊方法简单描述__name__类、函数、方法或生成器的名字__class__一个类实例所属的类对象__doc__文档字符串__dict__存储了对象属性的字典在你的作业里,写下这些东西的作用__init__()__del__()__str__()__repr__

温馨提示

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

评论

0/150

提交评论