首页
学习
活动
专区
圈层
工具
发布
30 篇文章
1
【愚公系列】2021年12月 Python教学课程 01-全方位解读Python
2
【愚公系列】2021年12月 Python教学课程 02-变量
3
【愚公系列】2021年12月 Python教学课程 03-数据类型
4
【愚公系列】2021年12月 Python教学课程 04-字符串
5
【愚公系列】2021年12月 Python教学课程 05-列表List
6
【愚公系列】2021年12月 Python教学课程 06-元组Tuple
7
【愚公系列】2021年12月 Python教学课程 07-字典Dict
8
【愚公系列】2021年12月 Python教学课程 08-基本语法
9
【愚公系列】2021年12月 Python教学课程 09-流程控制-顺序执行
10
【愚公系列】2021年12月 Python教学课程 10-流程控制-条件判断
11
【愚公系列】2021年12月 Python教学课程 11-流程控制-循环控制
12
【愚公系列】2021年12月 Python教学课程 12-Python函数
13
【愚公系列】2021年12月 Python教学课程 13-变量作用域
14
【愚公系列】2021年12月 Python教学课程 14-递归函数
15
【愚公系列】2021年12月 Python教学课程 15-匿名函数
16
【愚公系列】2021年12月 Python教学课程 16-推导式
17
【愚公系列】2021年12月 Python教学课程 17-模块与包
18
【愚公系列】2021年12月 Python教学课程 18-异常处理
19
【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义
20
【愚公系列】2021年12月 Python教学课程 20-面向对象编程-类和对象
21
【愚公系列】2021年12月 Python教学课程 21-面向对象编程-特殊成员和魔法方法
22
【愚公系列】2021年12月 Python教学课程 22-面向对象编程-封装、继承、多态
23
【愚公系列】2021年12月 Python教学课程 23-面向对象编程-运算符重载
24
【愚公系列】2021年12月 Python教学课程 24-Python数据库编程
25
【愚公系列】2021年12月 Python教学课程 25-Python文件读写
26
【愚公系列】2021年12月 Python教学课程 26-系统编程
27
【愚公系列】2021年12月 Python教学课程 27-算法
28
【愚公系列】2021年12月 Python教学课程 28-Web开发基础
29
【愚公系列】2021年12月 Python教学课程 29-MVC设计模式
30
【愚公系列】2021年12月 Python教学课程 30-Django简介

【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义

文章目录

一、 什么是面向对象编程

面向对象编程:Object Oriented Programming,简称 OOP,是一种程序设计方法。OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的方法。Python 就是一种面向对象的语言,支持面向对象编程,在其内部,一切都被视作对象。

面向对象编程出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程编程。在面向过程编程中,问题被看作一系列需要完成的任务,函数用于完成这些任务,解决问题的焦点集中于函数。其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。

示例:

代码语言:javascript
复制
'''
面向对象案例:
	老张开车去东北
	案例分析:
	对象有:人
		   交通工具
		   地点				  
'''
#定义人的对象
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)的变量和方法。
  • 多态:根据对象类型的不同以不同的方式进行处理。
下一篇
举报
领券