Python面向对象总结
python 面向对象(oop)
1、面向对象:是一个更大封装,把一个对象封装多个方法
2、类:是对一些具有相同特征或行为的事物的一个统称,是抽象的,不能直接使用
特征被称为属性 行为被称为方法
3、对象:是由类创建出来的一个具体的存在,可以直接使用
先有类再有对象,类只有一个,而对象可以有多个
类中定义了什么属性和方法,对象就有什么属性和方法,不可能多也不可能少
4、定义类
class 类名:
def 方法1(self,参数列表):
pass
def 方法2(self,参数列表):
pass
5、创建对象
对象变量名 = 类名()
6、初始化方法
__init__ 方法是专门用来定义一个类具有哪些属性的方法
创建对象时会被自动调用
7、dir() 函数
--new-- 创建对象时会被自动调用
--del--对象被从内存中销毁前会被自动调用
--str--返回对象的描述信息,用print()函数输出使用
8、面向对象的三大特性
封装:将属性和方法封装到一个抽象的类中
继承:实现代码的重用,相同的代码不需要重复的编写
多态:不同的对象调用相同的方法,产生不同的结果,增加代码的灵活度
9、继承
class 类名(父类名):
pass
子类继承父类,可以直接享受父类中已经封装好的方法,不需要再次开发,根据自己所需封装子类特有的属性和方法
在子类中重写父类的方法在需要的位置使用supper().父类方法来调用父类方法的执行
10、多继承
子类可以拥有多个父类,并且具有所有父类的属性和方法
__mro__可以查看继承的先后顺序
11、多态
不同的子类对象调用相同的父类方法,产生不同的执行结果
12、 魔法方法
--repr-- 在解释器环境下直接输出本对象,自动调用的方法
--len-- 调用len()函数的时候自动调用的方法
--call--调用本类对象的时候自动调用的方法
13、枚举法
from enum import Enum,unique
@ unique # 防止枚举成员的重复
class Menu(Eunm):
INSERT = 1
APPEND = 2
print(Menu.INSERT.value)
print(Menu.INSERT.value == 1)
print(Menu["INSERT"])