Python面向对象编程入门指南
在计算机编程的世界里,编程技术已经从简单的流程控制指令序列进化为更有组织的方式。首先是结构化的过程性编程,它可以让我们将程序划分为逻辑块以便于重用或复用。然而,面向对象编程则进一步增强了结构化编程,实现了数据和动作的融合,将数据层和逻辑层描述成一个可以创建这些对象的简单抽象层。下面我们将详细介绍面向对象编程的属性和创建过程。
常用术语
首先,让我们来了解一下面向对象编程的常用术语:
1. 抽象/实现:抽象指的是对现实世界问题和实体的本质表现、行为和特征建模,建立一个相关的子集,可以用于描绘程序结构,从而实现这种模型。
2. 封装/接口:封装描述了对数据/信息进行隐藏的观念,它对数据属性提供接口和访问函数,在设计时对数据提供相应的接口就可以了。
3. 合成:合成扩充了对类的描述,使得多个不同的类合成为一个大的类,来解决现实问题。
4. 派生/继承:派生描述了子类的创建,新类保留已存在类类型中所有需要的数据和行为,但允许修改或者其它自定义操作,都不会修改原类的定义。
5. 多态:指出了对象如何通过它们共同的属性和动作来操作及访问,而不必考虑它们具体的类。
6. 泛化/特化:泛化表示所有子类与其父类及祖先类有一样的特点;特化描述所有子类的自定义,也就是什么属性让它与祖先类不同。
7. 自省/反射:自省表示给予程序员某种能力来进行像“手工类型检测”工作,它也被称为反射。这个性质展示了某对象是如何在运行期取得自身信息。
创建类
类是一种数据结构,我们可以用它来定义对象,对象将数据值和行为特性融合到一起。在Python中,使用class关键字来创建类。通常,我们要将类名的第一个字母大写,以便区分其他变量和函数。
数据属性
数据属性仅仅是所定义的类的变量。这种属性已是静态变量,或者是静态数据,它们表示这些数据是与它们所属的类对象绑定的,不依赖于任何类实例。静态成员通常仅用来跟踪与类相关的值。
创建实例
如果说类是一种数据结构定义类型,那么实例则声明了一个这种类型的变量。类被实例化得到实例,该实例的类型就是这个被实例化的类。创建实例非常类似于调用函数,调用一个类就创建了它的一个实例。
实例属性
实例仅拥有数据属性,数据属性只是与某个类的实例相关联的数据值,并且可通过句点属性标识法来访问。设置实例的属性可以在实例创建后任意时间进行,也可以在能够访问实例的代码中进行。
特殊的实例属性
除了普通的实例属性之外,Python还提供了几个特殊的实例属性:
1. __class__:实例化I的类。
2. __dict__:I的属性。
类和实例属性对比
类属性仅是与类相关的数据值,类属性和实例无关。静态成员变量不会因为实例而改变它们的值,除非实例中显示改变它。类和实例都拥有名字空间,各自不相同。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。