基础
类由属性(成员变量,类里面定义的变量)和行为(成员方法,也即类里面定义的函数)构成,类中定义方法时一定要传入一个self参数,要在类中定义方法中引用类中定义的变量需要用self.该变量引用
如果在类中直接打印
魔术方法
构造方法
为了方便对象属性的赋值,简化代码,采用构造方法,也即__init__()方法,该方法自动执行,创建类对象的时候将传入参数自动传递给__init__方法使用
__str__字符串方法
写入该方法,返回一个字符串且可自行定义返回的内容,因此可以用__str__方法控制类转化为字符串的行为
正常直接打印一个类的结果是对象地址,但其实没什么用,所以可以用str方法输出类内容转化成字符串的结果
__lt__小于符号比较方法
用于返回类中数据比较的结果
当写入这个方法,就可以把类做比较了,不仅是小于号,大于号也可以比较,这个方法实际用的时候不需要传other参数,用的时候比就行了,都是封装好的逻辑
__le__魔术方法
可用于含有等于符号的比较,与__lt__相比只多了一个等于,从小于变成了小于等于
__eq__魔术方法
可用于是否相等的比较
面向对象特征
封装
将显示时间中的实物描述为类中的变量和方法
** 私有成员**
同现实世界一样,一些事物具有不公开的属性和行为,在Python类中也有私有成员,对于私有成员只需要在变量和方法前面以__开头即可,如果调用就会报错,但是可以被其它成员使用,即可以被自身调用而无法被用户直接调用
调用案例:
继承
对于一些新版本的更新,不可能重新再全部设计一遍,而是继承上一款内容重新修改一下,对于Python类也是这样,可以新建一个类继承父类,在新建类中修改
多继承:
多继承
一个·类中填入多个父类,如果这个类不需要再写内容,就最后面写一个pass为确保语法没问题
如果有两个父类中有同名成员,那按照传入子类的参数顺序,先传入的保留
多继承之复写
复写
子类基础父类的成员后,如果不满意可以在子类中重新定义复写
在子类中调用父类成员
用super或者父类名 . 成员方法