python基础知识三
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
八、面向对象
1、概述
区分面向对象和面向过程
面向过程首先分析问题的解决步骤然后根据解决步骤编写函数实现每个步骤的功能之后依次调用函数
面向对象分析问题从中提取出多个对象将不同对象的行为和特征进行封装之后通过控制对象的行为来解决问题
2、类和对象的基础应用
2.1、定义类
class 类名:
属性名 = 属性值
def 方法名(self):
方法体
类中方法的第一个参数必须为“self”
2.2、对象的创建和使用
对象名 = 类名()
3、类的成员
3.1、属性
分为类属性和实例属性
说明 | 访问 | 修改 | |
---|---|---|---|
类属性 | 定义在类内部方法外部 | 可以通过类和对象访问 | 只能通过类进行修改 |
实例属性 | 定义在方法内部 | 只能通过对象进行访问 | 通过对象进行修改 |
实例属性可以动态添加支持在类的外部通过对象添加
# eg.
car.color() = "red"
3.2、方法
分为实例方法和类方法
说明 | 调用 | |
---|---|---|
类方法 | 定义在类的内部以@classmethod修饰的方法以cls为第一个形参 | 可以通过类和对象调用 |
实例方法 | 形似函数定义在类的内部以self为第一个形参 | 只能通过对象调用 |
# 类方法
@classmethod
def 方法名(cls):
方法体
# 实例方法
class 方法名(self):
方法体
3.3、静态方法
定义在类的内部使用@staticmethon修饰
没有任何参数适用于与类无关的操作或者无需使用类成员的操作
可以被类和对象调用
静态方法的内部不能直接访问属性和方法
3.4、私有成员
类的成员默认为共有成员
可以在类的外部通过类和对象任意访问
通过在类成员的名称前添加双下画线 __
来显示私有成员
__属性名
__方法名
私有成员之内在类的内部访问在类的外部可以通过调用类的公有方法进行访问
4、特殊方法
构造方法创建对象时系统默认调用
析构方法销毁对象时系统默认调用
5、封装
要求
1.将属性声明为私有属性
2.添加两个供外界调用的公有方法分别用来设置和调用私有属性
# eg.
class Car:
__size
def set_size(self,new_size):
self.__size = new_size
def get_size(self)
return self.__size
6、继承
6.1、单继承
# 格式
class 子类名(父类名):
子类继承父类后会自动拥有弗雷德共有成员不会拥有父类的私有成员也不能访问父类的私有成员
6.2、多继承
# 格式
class 子类名(父类名1父类名2......)
若多个父类拥有同名方法若子类继承的多个类是平行的则先继承哪个类调用哪个类的方法
6.3、重写
子类可以重写父类的方法重写后只有通过super()函数才可以调用父类重写前的方法
7、多态
直接表示为
让不同类的同一功能通过一个接口调用
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |