![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python 面向对象
面向对象
take off now
Boost
展开
-
*args **kwargs
args是接收多余的参数,而kwargs是为了接收关键字参数而符号*是为了告诉Python解释器args和kwargs要特殊对待代码演示: def test1(a,b,*args,**kwargs): print(a) print(b) print(args) print(kwargs) test1(11,22,55,66,hello=99,OK=00)代码理解:...原创 2020-01-13 21:40:38 · 273 阅读 · 0 评论 -
*super函数(超类)
super()函数是用于调用父类(超类)的一个方法super()是用来解决多继承问题的,直接用类名调用父类中的方法在单继承中不会出现问题,但是在多继承中会涉及到查找顺序(MRO),重复调用(钻石继承)等种种问题。MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。重复调用(钻石继承)代码演示:class Parent(object): def __init__(se...原创 2020-01-13 16:30:53 · 1164 阅读 · 0 评论 -
类的属性和方法
我们这样可以理解:属性,所属的性质,就是类本身所具有的性质特征,在类中一般就表示变量。方法,就是类内部定义的函数class People(object): # 定义基本属性 name = '凌薇' age = 18 # 定义一个私有属性(两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。) __weight = 60 def...原创 2019-12-26 01:00:52 · 810 阅读 · 0 评论 -
类的继承——单继承
python如果不支持类的继承,那么定义类就没什么意义。格式如下:class DerivedClassName(BaseClassName):DerivedClassName是派生类,或者说是子类,BaseClassName是基类,或者说是父类,单继承代码演示:class Father(object): # 定义父类的构造方法 def __init__(self,n,a,w): ...原创 2019-12-24 17:54:50 · 745 阅读 · 0 评论 -
类的继承——多继承
多继承多继承要注意很多地方,以下代码只是最基本多继承方式,下面会讲到多继承的基本格式和继承方法简单说明:1、如果在子类中需要父类的构造方法就需要显示的调用父类的构造方法,或者不重写父类的构造方法。2、在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别在于类中调用普通函数时并不需要带上 self 参数。3、Python 总是首先查找对应类型的方法,如果它不能在...原创 2019-12-24 17:53:41 · 552 阅读 · 0 评论 -
类中多继承的方式及顺序
深度优先 & 广度优先深度优先和广度优先是俩种不同的算法思想,这里简单说明在类多继承中的方式顺序。如图,B 继承 A, C 继承 A, D 继承 B 和 C。深度优先遍历是从 D 开始往上搜索到 B,若 B 没有数据,则继续往上搜索到 A;广度优先遍历是从 D 开始往上搜索到 B,若 B 没有数据,则搜索和 B 同级的 C 里的数据,若同级的 C 里还是没有数据,再继续往上搜索...原创 2019-12-24 16:29:50 · 584 阅读 · 0 评论 -
类和实例
什么是类,类是用来描述相同属性和方法的对象的集合。方法:就是类中定义的函数。对象:通过类定义的数据结构的实例。类定义:class people: # 定义基本属性 name = '' age = 0 # 定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 # 定义构造方法 def __init__(self, ...原创 2019-12-22 01:16:36 · 528 阅读 · 1 评论