Python面向对象(三)
Python面向对象(二)
人丑就得多读书:Python面向对象(二)重点:类的封装
什么是封装?
- 封装:对属性和方法的抽象、隔离和保护;属性-变量;方法-函数
- 属性:私有属性和公开属性。私有属性:只能在类内部访问。公有属性:通过类/对象名访问。
- 方法:私有方法和公有方法。私有方法:只能在类内部使用。公开方法:可以通过类/对象名访问。
- 属性封装按两个维度,分为以下四种属性;
- 公开类属性--->类属性:在类空间定义的属性
- 私有类属性:仅供当前类访问的类属性,子类不能访问,私有类属性名开始需要有两个下划线,如__count---------->只能在类的内部被方法所访问,不能通过<类名/对象名>.<属性名>方式访问,利用方法中返回值的方法访问。这种方法的好处在于:可以在getCount()方法中判断访问的有效性、可以对访问次数进行计数......
- 公开实例属性:即实例属性,需要http://self.xxx来定义的属性
- 私有实例属性:属性名前加两下划线
- 小结:私有属性仅供类内部使用,可以对其进行保护,然而仅仅是形式上的保护
双下划线方法只是一种转换约定,转换后,类内原有名字发生了变化,是形式上的私有。通过如上的方式仍然可以访问私有属性。----->可以换个名字再访问
私有方法和公开方法
- 私有方法:只在类内部公开使用的方法,同样是名字前加两个下划线
- 同样也是形式上的私有,程序员逻辑而非安全逻辑,体现了python重视约定的理念
类的保留属性
- 特殊属性,双下划线开头和结尾
- 仅用类名访问的保留属性:
- 其他保留属性-->类名/对象名访问
- <类/对象>.__dict__返回对应成员的字典
类的保留方法
- python预留了保留方法的接口,但没有规定具体的保留方法逻辑,保留方法的逻辑需要程序员编写
- 对应比较操作的保留方法
------------------------->>>>python类的继承
继承的理解
- 继承:代码复用的抽象,是新定义类能够几乎完全使用原有类属性与方法的过程
- 多级别继承:超类、父类、子类
- 多继承:派生类继承于多个基类
类继承的构建
- 定义继承
基类名可以带有路径:ModuleName.BaseClassName
- 派生类可以直接使用基类的属性和方法;使用基类的类方法和类属性时,要用基类的类名调用
- 继承关系的判断
- 派生类只能继承基类的公开属性和方法,不能继承基类的私有属性和私有方法
P21 00:00:00
相关文章