类的定义
1. 类内部定义的函数称为方法
2. 类的方法的第一个参数为self
3. __init__方法会在实例化的时候自动执行
4. 实例.属性名调用对象属性
5. 实例.方法调用方法
6. 类的方法:描写类的行为
7. 类属性与实例属性区别
8. dir(luxp)查看类属性和方法
9. luxp.__dict__查看实例属性和方法
10. 通过类名.类属性名修改属性值,所有的实例该属性值都会改变
11. 通过实例.属性名修改属性值,只影响实例自身
12. 如果一个实例通过点语法修改了类的属性值,其实是在实例内部创建了一个局域的属性
单继承
1. 子类会自动从父类那里继承父类的属性与方法
2. 子类可以定义自己的属性和方法
3. 子类可以重载,会覆盖父类中的子类内容
4. _init_问题:当子类定义了_init_方法后,如果要执行 父类的方法,可以使用super()函数来显示调用父类的方法
多重继承
继承顺序:从左到右
1. mro可以得到继承的顺序
xx.mro()或者xx._mro_
2. Python中用来决定继承顺序的算法称为c3算法
深度优先算法(DFS,Depth-First-Search)
1. 把根节点压入栈中
2. 每次从栈中弹出一个元素,搜索所有在它下一级的元素,把这些元素压入栈中。 并把这个元素记为它下一级元素的前驱
3. 找到所要找的元素时结束程序
4. 如果遍历整个树还没有找到,结束程序
广度优先算法(BFS,Breadth-First-Search)
1. 把根节点放到队列的末尾
2. 每次从队列的头部取出一个元素,查看这个元素所有的下一级元素,把它们放到队列的末尾。 并把这个元素记为它下一级元素的前驱。
3. 找到所要找的元素时结束程序
4. 如果遍历整个树还没有找到,结束程序