对象=属性+方法
类就相当于一个对象,调用的时候我们需要和调用方法一样给它一个小括号,并且需要把它赋给某个变量,因为如果不赋给某个变量的话,它不指向任何变量,会被垃圾回收器回收
封装:如list()下好多的方法,都是封装起来我们直接调用的
继承:子类自动共享父类之间数据和方法的机制
多态:不同对象对同一方法响应不同的行动
如下方图片,名字一样,响应不一样
*self是什么?
相当于this
*__init__
python中默认调用的都是前后俩个下划线
这个__init__相当于构造函数,就是实例化它的时候,可以赋予相应的值,和C#实例化一个类,类中可传参数是一样的
*公有和私有
实际上python是将变量名改编成如下:
可以看出,这样也是能访问到该变量的值的
所以python的私有是伪私有,它实际上也是可以被访问的。和C#等语言private有很大的区别
继承
经试验,一个类可以继承多个父类
*如果子类定义和父类相同名字的属性或方法,则会覆盖子类中调用父类的方法
上述shark重写了__init__方法,因此调用move()的时候会报错,因为没有x与y
解决方案
1.将shark中实例化方法加一行这个
,这个self指向的是子类shark,因此叫未绑定的父类方法
2.使用super()方法,连self参数都不用传,他会自动调用基类/父类的方法
*可多重继承
示例:
原文:https://www.cnblogs.com/ningxinjie/p/10951505.html