美文网首页
python面向对象特性之封装

python面向对象特性之封装

作者: youngkun | 来源:发表于2017-07-26 21:32 被阅读0次

面向对象——封装

一、概述

Python面向对象的三大特性:封装、继承和多态。

封装:在类中对数据的赋值、内部调用对外部用户是透明的,类就像一个胶囊或容器,里面包含类的数据和方法。

二、封装

在类中我们封装什么?属性、方法和对象

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。所以,在使用面向对象的封装特性时,需要:

·将内容封装到某处

·从某处调用被封装的内容

第一步:将内容封装到某处

self是一个形式参数,当执行obj1 = Foo('wupeiqi', 18 )时,self等于obj1当执行obj2 =Foo('alex', 78 )时,self等于obj2

所以,内容其实被封装到了对象obj1和obj2中,每个对象中都有name和age属性,在内存里类似于下图来保存。

第二步:从某处调用被封装的内容

调用被封装的内容时,有两种情况:

·通过对象直接调用

·通过self间接调用

1、通过对象直接调用被封装的内容

#将零散的数据,包含在一个类型中#定义一个商品类型,封装和商品有关系的数据

2、通过self间接调用被封装的内容

执行类中的方法时,需要通过self间接调用被封装的内容

将对象敏感的数据,封装在类的内部,不让外界直接访问;而是通过定义的set/get方法来间接访问内部的数据的过程,此时,就可以在set/get方法中,添加条件限制代码!

>属性私有化,才能让外界不能直接访问

>在p2和p3中,约定了以一个下划线开头的变量,是私有变量,外界不要直接使用

>p3中,要求两个下划线开头的属性,表示当前类的私有属性,外界不能访问

综上所述,对于面向对象的封装来说,其实就是使用构造方法将内容封装到对象中,然后通过对象直接或者self间接获取被封装的内容。

三、 类型封装的步骤

1.抽象一个类型,完成类的定义

2.使用__slots__魔法属性,限制当前类的属性列表

3.所有属性私有化

4.给每个属性,提供set/get方法

备注:关于扩展属性(就是创建好对象之后增加的属性),主要是预留下来,给共享的数据使用的

如果对象中,有需要共享的数据,可以选择使用这样的属性。

#设置当前类创建的对象中,可能出现的属性列表,列表中没有出现的属性名称不允许使用

四、封装的几个阶段:

1.类型的定义:零散数据包含在一个类中,封装

2.属性私有化,提供set/get函数:封装进阶

3.添加@property和@method.setter,隐藏set/get函数:高级封装

4.扩展:同一个类中,出现了相同名称但是参数不同的函数:方法重载

五、总结

封装”就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体(即类);封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。

简而言之:封装就是将内容封装到某个地方,以后再去调用被封装在某处的内容。

相关文章

  • 营销比赛二三事

    Python面向对象编程三大特性调研 Python面向对象之封装 在Python中,没有类似 private 之类...

  • python面向对象特性之封装

    面向对象——封装 一、概述 Python面向对象的三大特性:封装、继承和多态。 封装:在类中对数据的赋值、内部调用...

  • Python面向对象封装

    面向对象——封装 一、概述 Python面向对象的三大特性:封装、继承和多态。 封装:在类中对数据的赋值、内部调用...

  • Python精简入门学习(十六)

    Python精简入门学习之面向对象三大特性 -oop三大特性 -封装 -继承 -多态

  • Class 的封装及调用-Python教学【StudyQuant

    前言:面向对象的三大特性是指:封装、继承和多态。论Class 的封装及调用 面向对象三大特性 面向对象的三大特性是...

  • 面向对象三大特性

    面向对象 三大特性 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事...

  • Java面试之基础篇

    面向对象的特性 面向对象的三大特性是:封装、继承、多态。 封装 封装就是将一个对象的属性和方法进行封装。同时私有化...

  • OC面向对象

    OC面向对象—封装 一、面向对象和封装 面向对象的三大特性:封装(成员变量)、继承和多态 在OC语言中,使用@in...

  • 面试 | java基础

    面向对象 1、面向对象特征? 封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成...

  • 1.1 封装

    本小节知识: 面向对象三大特性 什么是封装 为什么要进行封装? 封装的好处和原则 1.面向对象三大特性 封装性 继...

网友评论

      本文标题:python面向对象特性之封装

      本文链接:https://www.haomeiwen.com/subject/reaokxtx.html