1.封装 2.继承 3.多态
面向 过程/对象/接口
eg:一个人做/一家店/连锁店
规模——小——大
class 定义一个类型
区别 class car: 可以没有参数 class car(object): 父类用来继承
def定义一个函数
def foo(name): 参数
继承
eg
class Car:
color = "red"
class Ferrari(Car):
pass
## ... or pass 跳过
my_ferrari = Ferrari()
print(my_ferrari.color)
打印结果 :red
覆盖
class Car:
color = "red"
class Ferrari(Car):
color = "blue"
my_ferrari = Ferrari()
print(my_ferrari.color)
def go(self):
print(f'he {self.color} car is running.The speed is {self.speed} km/h.')```
def 定义一个函数
类下面的函数叫方法
不是类下面的函数叫函数
这里的self 代表了自己 self可以任何的一个只是这里self易读
![在这里插入图片描述](https://img-blog.csdnimg.cn/2df8d3b934e14fdd99bdf6fd45aca668.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASkFDS0xPTkdGWA==,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/6762a33f0349400da80a4eb8aff4f2fd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASkFDS0xPTkdGWA==,size_20,color_FFFFFF,t_70,g_se,x_16)
color speed 属性
go(self)方法 有函数类型的属性
方法特点是它有一个保留的self在里面
## 看下def 和_ _ ** _ _(解释器)
def:
![在这里插入图片描述](https://img-blog.csdnimg.cn/ff2b97bde9ee4e13bb6ab514519be028.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASkFDS0xPTkdGWA==,size_20,color_FFFFFF,t_70,g_se,x_16)
_ _init_ _() 解释器
![在这里插入图片描述](https://img-blog.csdnimg.cn/30f297e1cbf2405c88056b91263a6838.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASkFDS0xPTkdGWA==,size_20,color_FFFFFF,t_70,g_se,x_16)
直接调用
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb0f5acc25904055808cc78b00cc5324.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASkFDS0xPTkdGWA==,size_18,color_FFFFFF,t_70,g_se,x_16)