Python基础(八)

1.面向对象的魔法方法

__dev__:

__init__:初始化方法,当类被调用时,即执行初始化方法,不会在控制台中显示

__str__:当使用了str的魔法方法,当打印是,就会打印出str魔法方法中的return的内容,通常返回一个字符串

__del__:当类被调用时,如果不使用del,那么只有当整个类走完,所以的数据才会被释放;使用了del,可以在调用类的过程中删除释放某些变量

2.继承

面向对象的三大特性(封装、继承、多态)

讲到继承,就存在着父类,子类的概念

父类:父类也称作基类

子类:是父类的派生类,也称为子类,子类继承父类的方法和属性

单继承:即子类只继承一个父类

多继承:子类可以继承多个父类,即继承多个父类的方法和属性

私有属性和方法:虽然在继承中,子类可以重写,调用父类的属性和方法,但是存在着私有的,属于父类的属性和方法不可以

往往私有属性和方法都被用在类的内部,不通过对象使用

在多继承中,如果存在多个父类属性、方法相同时,则默认使用第一个父类的属性和方法,按照魔法属性mro的顺序来查找

mro:之后补充

子类重写父类方法:伴随着需求的不断迭代,父类的一些方法以及不足以满足,但是如果重新写一个新的方法,有会浪费很多的内存空间,那么可以在原有的父类方法基础上进行重写;重写也不是完成推翻,只是在原有父类方法的基础上,将需要的留下,将缺少的补充;重写的好处,重写父类方法,在一方面并没有改变父类中的父类方法,但是在子类中又得以满足,是一种两全其美的方法。

子类调用父类方法:在子类继承了父类时,第一时间应该是对父类方法进行解析,了解掌握父类的属性和方法,当需求相同时,优先选择调用父类方法来完成需求,调用时使用super()

修改私有属性的值:一般修改属性的值有两种方法,直接方法和间接方法。

直接方法:通过调用私有属性然后直接更改

间接方法:重新定义一个函数,然后在函数中对私有属性进行处理

修改类属性:在类外,想要修改类属性,必须通过类对象来进行修改,如果采用实例对象来修改,只是产生一个实例属性。

 

posted @ 2018-08-09 12:55  zxh_python  阅读(124)  评论(0编辑  收藏  举报