python面向对象编程的常用方法及专用术语详解

2020/06/10 19:56 · python教程 ·  原创文章 · 86阅读 · 0评论

python面向对象编程的常用方法

方法名称功能描述
__init__构造函数,在类生成对象之后就会被执行
__del__析构函数,释放对象时使用。这个方法默认是不需要写的,不写的时候,默认是不做任何操作的
__repr__打印,转换
__setitem__按照索引赋值
__getitem__按照索引获取值
__len__获得长度
__cmp__比较运算
__call__函数调用
__add__加运算
__sub__减运算
__mul__乘运算
__truediv__除运算
__mod__求余运算
__pow__乘方

面向对象常用术语

  • 抽象/实现

抽象是指对现实世界问题和实体的本质表现行为特征建模,建立一个相关的子集,可以用于描述程序结构,从而实现这种模型。抽象不仅包括这种模型的数据属性,还定义了这些数据的接口。

对某种抽象的实现就是对此数据及与之相关接口的现实化(realization)。现实化这个过程对于客户端程序应当是透明而且无关的。

  • 封装/接口

封装描述了对数据/信息进行隐藏的观念,它对数据属性提供接口和访问函数。通过任何客户端无视接口直接对数据的访问,与封装都是背道而驰的,除非程序员允许这些操作。作为实现的 一部分,客户端根本就不需要知道在封装之后,数据属性是如何组织的。在Python中,所有的类属性都是公开的,但名字可能被“混淆”了,以阻止未经授权的访问,但仅此而已,再没有其他预防措施了。这就需要在设计时对数据提供相应的接口,以免客户端程序通过不规范的操作来存取封装的数据属性。

注意:封装绝不是等于“把不想让别人看到、以后可能修改的东西用private隐藏起来”

真正的封装是,经过深入的思考,做出良好的抽象,给出“完整且最小”的接口,并使得内部细节可以对外透明

(注意:对外透明的意思是,外部调用者可以顺利的得到自己想要的任何功能,完全意识不到内部细节的存在)

  • 合成

合成扩充了对类的叙述,使得多个不同的类合成为一个大的类,来解决现实问题。合成描述了 一个异常复杂的系统,比如一个类由其它类组成,更小的组件也可能是其它的类,数据属性及方法,所有这些合在一起,彼此是“有一个”的关系。

  • 派生/继承/继承结构

派生描述了子类衍生出新的特性,新类保留已存类类型中所有需要的数据和行为,但允许修改或者其它的自定义操作,都不会修改原类的定义。

继承描述了子类属性从父类继承这样一种方式,继承结构表示多“代”派生,可以述成一个“族谱”,连续的子类与祖先类都有关系。

  • 泛化/特化

泛化表示所有子类与其父类及祖先类有一样的特点。

特化描述所有子类的自定义,也就是什么属性让它与其祖先类不同。

  • 多态与多态性

多态指的是同一种事物的多种状态:水这种事物有多种不同的状态:冰,水蒸气

多态性的概念指出了对象如何通过他们共同的属性动作来操作及访问,而不需考虑他们具体的类。

冰,水蒸气,都继承于水,它们都有一个同名的方法就是变成云,但是冰变云水蒸气变云是截然不同的过程,虽然调用的方法都一样。

  • 自省/反射

自省也称作反射,这个性质展示了某对象是如何在运行期取得自身信息的。如果传一个对象给你,你可以查出它有什么能力,这是一项强大的特性。如果Python不支持某种形式的自省功能,比如dirtype内建函数,将很难正常工作。还有那些特殊属性,像__dict____name____doc__

您可能感兴趣的文章

本文地址:http://www.pythongcs.cn/138.html
文章标签: ,  
版权声明:本文为原创文章,版权归 yubaba 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

 发表评论


表情