编程思想
1.面向过程编程:按照固定的流程解决问题。
2.面向对象编程:数据与功能的结合体。
面向对象之类与对象
1.类的语法结构
class 类名:
'''代码注释'''
对象公共的数据
对象公共的功能
1.class定义累的关键字
2.类名的命名与变量名几乎一致 需要注意首字母推荐大写用于区分
3.数据:变量名与数据值的绑定 功能(方法)其实就是函数
2.类的定义与调用
类的定义阶段就会执行类体代码 但是属于类的局部名称空间 外界无法直接调用
动静方法
1.类中直接定义函数,默认绑定给对象,类调用有几个参数传几个,对象调用第一个参数就是对象自身
2.被classmethod修饰的函数,默认绑定给类,类调用第一个参数就是类自身,对象也可以调用并且会自动产生该对象的类当做第一个参数传入
3.staticmethod,普普通通的函数,无论是类还是对象调用,都必须自己手动传参
继承的本质
对象:数据与功能的结合体
类:多个对象相同数据和功能的结合体
父类:多个类相同数据和功能结合体
ps:类与父类本质都是节省代码
名字的查找顺序
1.不继承的情况
对象自身--》产生对象的类
2.单继承的情况
对象自身--》产生对象的类--》父类
3.多继承名字查找顺序
菱形继承:广度优先(最后才会找闭环的顶点)
非菱形继承:深度优先(从左往右每条道走完为止)
对象自身--》产生对象的类--》父类(从左往右)
经典类与新式类
经典类:不继承object或者其子类的类(python2独有)
新式类:继承object或者其子类的类
派生方法
派生方法:子类基于父类某个方法做了扩展
super()