栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

什么是面向对象编程?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是面向对象编程?

面向对象编程Object Oriented Programming,也就是OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个完整的程序是由一个或者多个对象有机地组合在一起的,一个对象包含了数据和操作数据的函数。

与面向对象相对的是面向过程, 面向过程的程序设计把程序当做是一系列的命令有序集合,也就是一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

面向对象把对象作为程序的基本执行单元,程序的执行就是一系列消息在各个对象之间传递。

在Python中,所有数据类型都是对象,我们也可以自定义对象,依旧是定义Python中的一个类(class)。

面向过程和面向对象在程序流程上的有何不同, 举例说明一下:

假设我们要处理员工的信息表,为了表示一个员工的信息,面向过程的程序可以用一个dict表示:

staff1 = { ‘name’: ‘小李’, ‘age’: 25,}
staff2 ={ ‘name’: ‘小张’, ‘age’: 30}

而处理员工信息可以通过函数实现,比如打印员工的信息:

def print_info(staff):
print(’%s: %s’ % (staff[‘name’], staff[‘age’]))

如果采用面向对象的程序设计思想,我们首选思考的不是程序的执行流程,而是staff 这种数据类型应该被视为一个对象,这个对象拥有name和age这两个属性(Property)。如果要打印一个员工的信息,首先必须创建出这个员工对应的对象,然后,给对象发一个print_info消息,让对象自己把自己的数据打印出来。

class Staff(object):

def __init__(self, name, age):
    self.name = name
    self.age= age

def print_info(self):
    print('%s: %s' % (self.name, self.age))

给对象发消息实际上就是调用对象对应的关联函数,我们称之为对象的方法(Method)。面向对象的程序写出来就像这样:

laowang= Staff(‘老王’, 33)
laowu= Staff(‘老吴’, 40)

laowang.print_info()
laowu.print_info()

面向对象的设计思想是从自然界中来的,更准确说是生物学来的, 来自于生物学中细胞的概念。因为在自然界中,类(Class)和实例(Instance)的概念是很自然的。Class是一种抽象概念,比如我们例子中的员工是一个概念,而实例(Instance)则是一个个具体的Staff,比如,xiaoli 和xiaozhang是两个具体的Staff。

所以,面向对象的设计思想是抽象出类(class),根据Class创建实例(instance))。

面向对象的抽象程度又比函数要高,因为一个Class既包含数据,又包含操作数据的方法。

补充:
数据封装、继承和多态是面向对象的三大特点
欢迎交流学习:ljhz_by

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269087.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号