面向对象和面向过程介绍
1:面向对象编程使程序的扩展性更强、可读性更好,使编程可以像搭积木一样简单。
2:面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率。
面向对象是什么?
当遇见一个很困难的问题时,进行拆分,拆成一个个简单的问题。
给简单问题解决后,对简单的问题进行组装
比如:制造电脑,要知道电脑是(CPU,主板,内存,硬盘,GPU等等)最终进行组装
面向过程是什么?
是拿到电脑时,开机 > 安装系统 > 下载软件 > 打游戏
面向对象离不开面向过程:
宏观上:面向对象进行整体设计和框架搭建
微观上:执行和处理数据,是面向过程
类的定义
类:好比盖房子的图纸,Python框架搭建
class dian_nao():
#造主板
def q1()
pass
#造CPU
def q1()
pass
#造内存
def q1()
pass
#造硬盘
def q1()
pass
#造GPU
def q1()
pass
类: class
对象:叫做 object , instance (实例)
pass 为空语句只是作为一个占位符存在
__init__ 构造方法和 __new__ 方法
初始化对象,我们需要定义构造函数 __init__() 方法。构造方法用于执行“实例对象的初始化工作”,即对象创建后,初始化当前对象的相关属性,无返回值。
构造方法是负责初始化(电脑美化),而不是造电脑
init() 的要点如下
必须为: __init__()
第一个参数固定,必须为: self
class dian_nao():
def __init__(self,name,xing_hao) #构造方法
self.name= name #实例属性
self.xing_hao= xing_hao
#造主板
def zhu_ban(self)
print(f'{self.name}制造成功,型号是:{self.xing_hao}') #主板制造成功,型号是001号
#调用电脑类中的主板实例方法
q1=dian_nao('主板','001号')
q1.zhuban()
实例属性
实例属性一般在 __init__() 方法:self.实例属性名 = 初始值
也是通过 self 进行访问:self.实例属性名
实例方法
class dian_nao():
def __init__(self,name,xing_hao) #构造方法
self.name= name #实例属性
self.xing_hao= xing_hao
#造主板
def zhu_ban(self) #实例方法
pass
1:定义实例方法时,第一个参数必须为 self
2:调用实例方法时,不需要也不能给 self 传参。 self 由解释器自动传参
函数和方法的区别
1:都是用来完成一个功能的语句块,本质一样。
2:方法调用时,通过对象来调用。方法从属于特定实例对象,普通函数没有这个特点
3:直观上看,方法定义时需要传递self,函数不需要
类对象、类属性、类方法、静态方法
类对象
当解释器执行class 语句时,就会创建一个类对象
类属性
类属性是从属于“类对象”的属性,也称为“类变量”。由于,类属性从属于类对象,可以被所有实例对象共享。
静态方法
静态方法通过装饰器@staticmethod来定义
@property 装饰器