实例仅拥有数据属性(方法严格来说是类属性),后者只是与某个类的实例相关联的数据值,并且可以通过句点属性标识法来访问。这些值独立于其他实例或类。当一个实例被释放后,它的属性同时也被清楚了。
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. 类属性持久性
类属性的修改会影响到所有的实例。
分享到:
相关推荐
本书《面向对象编程:C++与Java比较教程》详细比较和对比了当今最流行的两种编程语言C++和Java,旨在教授互联网时代至关重要的技能和面向对象编程技术。作者Avinash C. Kak凭借其成功教授的课程,撰写了一本全面的...
多态是 Java 面向对象编程的第三大特征,通过重载、重写与覆盖,实现不同类的不同形态特征。多态使得类可以根据不同的情况表现出不同的形态,从而提高代码的灵活性和可维护性。 四、类和对象 类是 Java 面向对象...
总而言之,学习现代JavaScript面向对象编程,有助于开发者在认识这门语言演化的基础上,运用面向对象的设计和编程模式来构建更加健壮和可维护的JavaScript应用程序。同时,测试和调试是保证代码质量不可或缺的环节,...
十、面向对象编程的优点 面向对象编程的优点包括便于程序模拟现实世界中的实体、隐藏细节、对象的行为和属性被封装在类中、可重用等。 十一、数据类型 数据类型包括基本数据类型和引用数据类型。基本数据类型没有...
2. **封装**:封装是面向对象编程的三大特性之一,它隐藏了对象的内部实现细节,只对外提供公共接口。源代码中可能通过访问修饰符(如private、public、protected)来实现数据封装。 3. **继承**:继承允许一个类...
面向对象编程技术第四章PPT资料.pptx 面向对象编程技术是现代软件开发中最重要的技术之一。本章节主要讲解面向对象编程技术的基本概念和实现方法。下面是从PPT资料中提取的知识点: 一、类与对象 * 类是具有相同...
第13章 容器和泛型.pptx 第14章 流与文件(1).pptx 第14章 流与文件(2).pptx 第15章 网络编程.pptx 第1章 Java概述.pptx 第2章 Java基础.pptx 第3章 数组.pptx 第4章 类和对象(1).pptx 第4章 类和对象(2)....
面向对象的Java网络编程 \chap03 提供了本书第3章的范例源程序; \chap04 提供了本书第4章的范例源程序; \chap05 提供了本书第5章的范例源程序; \chap06 提供了本书第6章的范例源程序; \chap07 ...
《C++面向对象多线程编程》共分13章,全面讲解构建多线程架构与增量多线程编程技术。第1章介绍了用于构建面向对象程序的不同类型C++组件,以及如何使用这些组件来构建多线程架构。第2、3、4章简要介绍进程、线程、多...
本章节——第十一章案例,旨在通过实际操作来巩固和拓展学员对于面向对象编程的理解。 面向对象编程(Object-Oriented Programming,简称OOP)基于“对象”的概念,将数据和操作数据的方法封装在一起。在Java中,类...
第三章Delphi面向对象编程思想 第九章对话框 第二章Delphi语法基础 第五章VCL组件应用 第八章VCL组件应用续2 第六章VCL组件应用续1 第十一章文件操作和管理 第十三章数据库编程 第十二章图形图像和多媒体技术 第十章...
面向对象程序设计(Java)第十三章例题代码-J7chapte13面向对象程序设计(Java)第十三章例题代码-J7chapte13面向对象程序设计(Java)第十三章例题代码-J7chapte13面向对象程序设计(Java)第十三章例题代码-J7...
《Visual C++ 面向对象编程教程》是王育坚编著的一本针对C++初学者的指导书籍,旨在帮助读者深入理解C++语言,特别是其面向对象编程(Object-Oriented Programming, OOP)的概念和技术。C++是一种强大的、通用的编程...
- **第13题**: BC - 面向对象编程中异常处理的重要性。 #### 编程二 - **第1题**: B - 类与对象的关系。 - **第2题**: B - 继承与多态的关系。 - **第3题**: A - 封装的好处。 - **第4题**: B - 多态性的实现机制。...
Java面向对象编程是Java语言的核心特性之一,由孙卫琴老师讲授的这门课程深入浅出地介绍了这一主题。课后答案集包含了对课程中习题的详细解答,是学习者巩固理论知识、提升实践技能的重要参考资料。下面将详细阐述...
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
希望通过电子书了解了本书第一版内容并对其感兴趣的读者能够购买《Java面向对象编程》最新的第二版,相信它一定不会让你失望。呵呵,这也算是对矢志投身中国Java编程普及教育的孙老师的一点支持吧。。。
类是面向对象编程的基础,它定义了一组属性(数据成员)和行为(成员函数)。在MATLAB中,通过`classdef`关键字创建类。例如: ```matlab classdef MyClass properties property1 property2 end methods ...
面向对象数据库系统是数据库技术与面向对象编程方法相结合的产物,旨在提供更符合人类思维模式的数据管理和编程方式。这一章主要涵盖了四个关键知识点:面向对象程序设计方法、面向对象数据模型、面向对象数据库建模...