实例仅拥有数据属性(方法严格来说是类属性),后者只是与某个类的实例相关联的数据值,并且可以通过句点属性标识法来访问。这些值独立于其他实例或类。当一个实例被释放后,它的属性同时也被清楚了。
13.6.1 ”实例化“实例属性(或创建一个更好的构造器)
1. 在构造器中首先设置实例属性
构造器是最早可以设置实例属性的地方,因为__init__()是实例创建后第一个被调用的方法。
2. 默认参数提供默认的实例安装
默认参数应当是不变的对象;像列表(list)和字典(dictionary)这样的可变对象可以扮演静态数据,然后在每个地方调用中来维护它们的内容。
3. __init__()应当返回None
13.6.2 查看实例属性
与类相似,实例也有一个__dict__特殊属性,它是实例属性构成的一个字典。
13.6.3 特殊的实例属性
c.__class__ 实例化c的类
c.__dict__ c的属性
13.6.4 内建类型属性
对内建类型也可以使用dir(),与任何其他对象一样,可以得到一个包含它属性名字的列表。
试着访问__dict__会失败,因为在内建类型中,不存在这个属性。
13.6.5 实例属性vs类属性
1. 访问类属性
当实例c被创建后,对实例c而言,访问c.version会失败,不过Python首先会在实例中搜索名字version,然后是类,再就是继承树中的基类。
2. 从实例中访问类属性需谨慎
给一个与类属性同名的实例属性赋值,我们会有效地”隐藏“类属性,但一旦我们删除了这个实例属性,类属性又重见天日。
但在类属性值可变的情况下,一切又都不同了:
3. 类属性持久性
类属性的修改会影响到所有的实例。
分享到:
相关推荐
第3章 面向对象编程 第4章 高级类特性1 第5章 高级类特性2 第6章 异常处理 第7章 Java集合 第8章 泛型 第9章 注解&枚举 第10章 IO 第11章 多线程 第12章 Java常用类 第13章 Java反射 第14章 网络编程
C++程序设计教程 第11章 面向对象编程(共21页) C++程序设计教程 第12章 多态(共8页) C++程序设计教程 第13章 抽象类(共2页) C++程序设计教程 第14章 模板(共32页) C++程序设计教程 第15章 异常(共5页)
第13讲-Scala编程详解:面向对象编程之对象 共9页 第14讲-Scala编程详解:面向对象编程之继承 共13页 第15讲-Scala编程详解:面向对象编程之Trait 共14页 第16讲-Scala编程详解:函数式编程 共14页 第17讲-Scala编程...
第13章 容器和泛型.pptx 第14章 流与文件(1).pptx 第14章 流与文件(2).pptx 第15章 网络编程.pptx 第1章 Java概述.pptx 第2章 Java基础.pptx 第3章 数组.pptx 第4章 类和对象(1).pptx 第4章 类和对象(2)....
底层网络 网络层 传输层 应用层 底层网络协议 网页浏览 文件传输 电子邮件 视频会议 IP TCP UDP 第13章-Java网络编程-Java面向对象程序设计教程-微课视频版-程杰-清华大学出版社全文共17页,当前为第5页。...
面向对象的Java网络编程 \chap03 提供了本书第3章的范例源程序; \chap04 提供了本书第4章的范例源程序; \chap05 提供了本书第5章的范例源程序; \chap06 提供了本书第6章的范例源程序; \chap07 ...
Python从入门到精通 第5章 列表与元组.ppt Python从入门到精通 第6章 字典与集合.ppt Python从入门到精通 第7章 字符串.ppt Python从入门到精通 第8章 Python中使用正则表达式.ppt Python从入门到精通 第9章 函数....
《C++面向对象多线程编程》共分13章,全面讲解构建多线程架构与增量多线程编程技术。第1章介绍了用于构建面向对象程序的不同类型C++组件,以及如何使用这些组件来构建多线程架构。第2、3、4章简要介绍进程、线程、多...
第三章Delphi面向对象编程思想 第九章对话框 第二章Delphi语法基础 第五章VCL组件应用 第八章VCL组件应用续2 第六章VCL组件应用续1 第十一章文件操作和管理 第十三章数据库编程 第十二章图形图像和多媒体技术 第十章...
第13讲-Scala编程详解:面向对象编程之对象 共9页 第14讲-Scala编程详解:面向对象编程之继承 共13页 第15讲-Scala编程详解:面向对象编程之Trait 共14页 第16讲-Scala编程详解:函数式编程 共14页 第17讲-Scala编程...
第13讲-Scala编程详解:面向对象编程之对象 共9页 第14讲-Scala编程详解:面向对象编程之继承 共13页 第15讲-Scala编程详解:面向对象编程之Trait 共14页 第16讲-Scala编程详解:函数式编程 共14页 第17讲-Scala编程...
希望通过电子书了解了本书第一版内容并对其感兴趣的读者能够购买《Java面向对象编程》最新的第二版,相信它一定不会让你失望。呵呵,这也算是对矢志投身中国Java编程普及教育的孙老师的一点支持吧。。。
第5章 类设计指导原则 第6章 利用对象实现设计 第7章 掌握继承和组合 第8章 框架与重用:使用接口和抽象类实现设计 第9章 构建对象 第10章 用UML创建对象模型 第11章 对象和可移植数据:XML 第12章 持久对象...
matlab面向对象编程教程-A Guide to MATLAB Object-Oriented Programming - Register, CRC 2007.rar 最近想好好学学matlab面向对象编程的一些东西(以前也自学过,但现在想系统学一下,libsvm工具箱几乎已经没有...
第13章 基于thinter的GUI编程.ppt 第14章 Python的高级技术.ppt 第15章 数据库的应用.ppt 第16章 网络编程的应用.ppt 第17章 CGI程序设计.ppt 第18章 Web网站编程.ppt 第19章 经典游戏应用-开发弹球游戏.ppt 第20章 ...
第六章 面向对象程序设计 97 一、选择题 97 二、填空题 118 三、判断题 120 四、编程题 123 第七章 数据库的连接 129 一、选择题 129 二、填空题 131 三、判断题 131 四、编程题 131 第八章 多线程 133 一、填空题 ...
第十三章 面向对象编程 第十四章 执行环境 第2部分 高级主题 第十五章 正则表达式 第十六章 网络编程 第十七章 网络客户端编程 第十八章 多线程编程 第十九章 图形用户界面编程 第二十章 Web编程 第二十一章...
面向对象程序设计-Java(张白一) 第1章 Java系统环境概述 第2章 Java语言基础 第3章 程序流程控制 第4章 类与对象 第5章 消息、继承与多态 第6章 数组 第7章 字符串类 第8章 文字与图形GUI设计 第9章 常用组件GUI设计...
第5章 类设计指导原则 68 5.1 真实世界系统建模 68 5.2 明确公共接口 69 5.2.1 最小公共接口 69 5.2.2 隐藏实现 69 5.3 设计健壮的构造函数(和析构函数) 70 5.4 在类中设计错误处理 70 5.4.1 对类建立文档...
第13章 面向对象编程 第14章 执行环境 第2部分 高级主题 第15章 正则表达式 第16章 网络编程 第17章 网络客户端编程 第18章 多线程编程 第19章 图形用户界面编程 第20章 Web编程 第21章 数据库编程 第22章...