python中关于OOP的常用术语

一、python中关于OOP的常用术语

1.1抽象/实现

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

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

1.2封装/接口

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

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

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

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

1.3合成

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

1.4派生、继承、继承结构

派生描述了子类衍生出新的特性,新类保留已存类类型中所有需要的数据和行为,但允许修改或者其它的自定义操作,都不会修改原类的定义。
继承描述了子类属性从祖先类继承这样一种方式
继承结构表示多“代”派生,可以述成一个“族谱”,连续的子类,与祖先类都有关系。

1.5泛华、特化

基于继承
泛化表示所有子类与其父类及祖先类有一样的特点。
特化描述所有子类的自定义,也就是,什么属性让它与其祖先类不同。

1.6多态与多态性

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

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

多态表明了动态(又名,运行时)绑定的存在,允计重载及运行时类型确定和验证。

举例:

水是一个类

不同温度,水被实例化成了不同的状态:冰、水蒸气,雾(然而很多人就理解到这一步就认为此乃多态,错,多态是运行时绑定的存在)

(多态体现在由同一个类实例化出的多哥对象,这些对象执行相同的方法时,执行的过程和结果是不一样的)

冰、水蒸气、雾,有一个共同的方法就是变成云,但是冰.变云()与水蒸气.变云()是截然不同的两个过程,虽然调用的方法一样。

1.7自省与反省

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

原文地址:https://www.cnblogs.com/changzhendong/p/11328229.html

时间: 2024-07-29 19:24:09

python中关于OOP的常用术语的相关文章

四 python中关于OOP的常用术语

抽象/实现 抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于 绘程序结构,从而实现这种模型.抽象不仅包括这种模型的数据属性,还定义了这些数据的接口. 对某种抽象的实现就是对此数据及与之相关接口的现实化(realization).现实化这个过程对于客户 程序应当是透明而且无关的. 封装/接口 封装描述了对数据/信息进行隐藏的观念,它对数据属性提供接口和访问函数.通过任何客户端直接对数据的访问,无视接口,与封装性都是背道而驰的,除非程序员允许这些操作.作为实现的 一

python中的oop面向对象基本编程(类、实例、魔术)

                  OOP面向对象(老师说这玩意蕴含基本哲学哦!!) 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.数据封装.继承和多态是面向对象的三大特点. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 而面向对象的程序设计把

python中的数据类型和常用运算符

一. python中常见的数据类型 1. 整数:任何时候运算都是精确的 2. 浮点数:运算的时候,可能会有四舍五入 3. 字符串:字符串是以单引号'或双引号"括起来的任意文本 1) 同类型的可以用+号 或者 , 号来进行拼接 2) 不同类型的只能用, 号拼接,不能用+号 3) 强制转换后,可以进行拼接,比如str(a) int(a)这种就是强制转换 4. 布尔值:布尔值只有True.False两种值,逻辑运算得到的结果就是布尔值 5. None值:空值是python中一个特殊的值,用None来表

Python中的模块、常用模块——12

模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式,在python中,一个.py文件就称之为一个模块(Module). 使用模块的好处 首先使用模块最大的好处就是大大提高了代码的可维护性. 其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包括py

Python中的os模块常用函数

本文的参考文献为------<简明Python教程> os是python的一个重要的模块,使用前需要:import os 常用的函数如下: (1)os.name,返回正在使用的平台. (2)os.getcwd(),返回当前工作目录. (3)os.path.exists(),检验给出的路径是否真正地存在. (4)os.path.isfile(),检验给出的路径是否为一个文件. (5)os.path.isdir(),检验给出的路径是否为一个目录. (6)os.path.split(),返回一个路径

python中几种数据类型常用的方法

''' python几种数据类型常用方法: 列表 增加:append,insert,extend 删除:remove,pop,clear 修改: 查询:index,count 元组 查询:index,count *:解包操作 集合 增加:add 删除:pop,clear,remove 字典 增加:字典['键'] = 值 删除:pop,popitem,clear 修改:update(dict) 查询:get,keys,items,values,setdefault:有对应的键则返回对应的值,没有则

python中os模块的常用接口和异常中Exception的运用

1.os.path.join(arg1, arg2) 将arg1和arg2对应的字符串连接起来并返回连接后的字符串,如果arg1.arg2为变量,就先将arg1.arg2转换为字符串后再进行连接. 2.self.settings = Gio.Settings.new("com.linuxmint.mintmenu") 在默认环境路径中,根据“com.linuxmint.mintmenu”开头的XML配置文件创建配置变量self.settings,通常XML配置文件位于/usr/shar

python中字符串(str)的常用处理方法

str='Python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str)例:print '%s length=%d' % (str,len(str)) 一.字母处理全部大写:str.upper()全部小写:str.lower()大小写互换:str.swapcase()首字母大写,其余小写:str.capitalize()首字母大写:str.title()print '%s lower=%s' % (str,

python中math模块的常用详解

ceil:取大于等于x的最小的整数值,如果x是一个整数,则返回x copysign:把y的正负号加到x前面,可以使用0 cos:求x的余弦,x必须是弧度 degrees:把x从弧度转换成角度 e:表示一个常量 exp:返回math.e,也就是2.71828的x次方 expm1:返回math.e的x(其值为2.71828)次方的值减1 fabs:返回x的绝对值 factorial:取x的阶乘的值 floor:取小于等于x的最大的整数值,如果x是一个整数,则返回自身 fmod:得到x/y的余数,其值