【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义
2021/12/14 17:18:55
本文主要是介绍【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一、 什么是面向对象编程
- 总结
一、 什么是面向对象编程
面向对象编程:Object Oriented Programming,简称 OOP,是一种程序设计方法。OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的方法。Python 就是一种面向对象的语言,支持面向对象编程,在其内部,一切都被视作对象。
面向对象编程出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程编程。在面向过程编程中,问题被看作一系列需要完成的任务,函数用于完成这些任务,解决问题的焦点集中于函数。其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。
示例:
''' 面向对象案例: 老张开车去东北 案例分析: 对象有:人 交通工具 地点 ''' #定义人的对象 class Person: #初始化人的属性 def __init__(self,name,card): self.name = name self.card = card #定义人使用交通工具的方法 def drive(self,tool,place): if self.card: tool.driving() print("{}开{}去{}".format(self.name,tool.name,place.name)) else: print("北京第三安全局提醒您:道路千万条,安全第一条,行车不规范,亲人两行泪") #定义交通工具的对象 class Traffic_Tools: #初始化交通工具的属性 def __init__(self,name,color): self.name = name self.color = color #定义交通工具的启动方法 def driving(): print("{}已经启动".format(self.name)) #定义地点的对象 class Place: #初始化地点的属性 def __init__(self,name): self.name = name lao_zhang = Person("老张",True) tool = Traffic_Tools("Jeep","灰色") place = Place("东北") lao_zhang.drive(tool,place)
总结
面向过程
:根据业务逻辑从上到下写代码。
面向对象
:将数据与函数绑定到一起,进行封装,这样能够更快速地开发程序,减少了重复代码的重写过程。
比较面向对象编程和面向过程编程,可以得到面向对象编程的以下优点:
- 可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰;
- 通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,降低软件维护的难度;
- 通过对对象的辨别、划分可以将软件系统分割为若干相对独立的部分,在一定程度上更便于控制软件复杂度;
- 以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方法)两个方面把握问题,从而更好地实现系统;
- 通过对象的聚合、联合可以在保证封装与抽象的原则下实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。
概念及术语:
- 类(Class): 用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。其中的对象被称作类的实例。
- 实例:也称对象。通过类定义的初始化方法,赋予具体的值,成为一个"有血有肉的实体"。
- 实例化:创建类的实例的过程或操作。
- 实例变量:定义在实例中的变量,只作用于当前实例。
- 类变量:类变量是所有实例公有的变量。类变量定义在类中,但在方法体之外。
- 数据成员:类变量、实例变量、方法、类方法、静态方法和属性等的统称。
- 方法:类中定义的函数。
- 方法重写:如果从父类继承的方法不能满足子类的需求,可以对父类的方法进行改写,这个过程也称 override。
- 封装:将内部实现包裹起来,对外透明,提供 api 接口进行调用的机制
- 继承:即一个派生类(derived class)继承父类(base class)的变量和方法。
- 多态:根据对象类型的不同以不同的方式进行处理。
这篇关于【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战
- 2024-09-18Python量化交易:入门指南与实践
- 2024-09-18Python量化交易:入门指南与实战技巧
- 2024-09-14Python人工智能项目实战:从零开始的实践指南
- 2024-09-14探索Python人工智能资料:初学者的指南
- 2024-09-14Python人工智能资料:初学者的全面指南
- 2024-09-13Matplotlib入门:轻松绘制Python数据可视化图表
- 2024-09-13Python人工智能:初学者的入门指南
- 2024-09-13Python人工智能:轻松入门与实践