python基础-函数、类和对象
上一篇文章简单记述了python的基础语法,在爬虫等简单任务中也基本够用,无非就是字符串列表集合的加加减减缝缝补补,但后面在学习深度学习的过程中很多案例都应用到了函数以及类和对象等python基础知识中的稍微高阶的用法,现在返回去补充学习一下,记叙下来,给自己加深印象,同时作为之后应用时候的查询。(ps: python好学,深度学习NLP是真tm难学啊,求推荐课程。)
目录
2.7.3快速查看某个类的继承顺序,用 子类.__mro__
1.函数
1.1定义函数
1.2调用函数
1.3形参与实参(形式参数与实际参数)
1.4返回值
(return相当于退出当前函数的命令,所以函数里面return下面的函数不执行)
1.5函数嵌套调用
1.6局部和全局变量
局部变量:在函数里面的变量
全部变量:在函数上面的变量
在函数里面把局部变量修改成全局变量,用global + 变量声明一下,就可以在函数里面改变全局变量
1.7函数参数
1.7.1位置参数
1.7.2关键字参数
1.7.3 缺省参数
1.7.4不定长参数
1.8拆包
2.类和对象
2.1定义类
2.2定义对象
2.3添加对象属性
2.4类外面获取对象属性
2.5类里面获取对象属性
2.6魔法方法:初始化对象
2.6.1带参数的init
2.7 继承
2.7.1单继承
2.7.2多继承
2.7.3快速查看某个类的继承顺序,用 子类.__mro__
2.7.4子类重写父类同名方法和属性
2.7.5子类调用父类的同名方法或属性
2.7.6多层继承
2.7.7super()调用父类方法
解释:在多层继承里面,如果一次性要调用所有父类方法,需要逐一写代码(调用某个父类的初始化、调用某父类的方法),代码比较冗余,如果父类比较多的情况下,则不太容易书写代码,并且如果父类名字改变的话后面调用也要逐一改变。
但是super方法可以解决此问题,本质上还是起到化简代码的作用。
super有两种写法,一种是带参数的super参数,一种是省略参数的super。
(这里有点绕,但感觉还比较重要,因为后面深度学习代码中用到了、。之前不明白所以一直不太懂后面的)
2.7.8继承的私有权限
某个父类里面的属性和方法不想继承给子类,在属性名和方法名前面加上两个下划线__
私有属性和私有方法智能在类里面访问和修改。也可以用get__xx用来获取私有属性,用set_xx来修改私有属性值。
(面向对象三大特性:封装、继承、多态
类属性和实例属性
类方法和静态方法
省略掉吧,用到再回来复习)