封装

1.什么是封装?

根据名字寓意为:把一个东西装起来,然后密封,类似这样的面向对象的编程为封装。

真正的封装是明确的区别内外,只能在内部用,外部无法调用。

2.

举例:

class Car:
_star = 'benchi' # "_"表明是隐藏属性,不能在外部使用(不代表无法调用到)
__star1 = 'baoma' # "__"python给自动重命名,命名为"_Car__star1"
def __init__(self,name,type):
self.name = name
self.type = type
def get_type(self):
print('%s是%s类型的车' % (self.name,self.type)) c1 = Car('奔驰E600','大型高档轿车')
c1.get_type() print('=========================')
print(c1._star)
print(c1._Car__star1)

运行结果:

奔驰E600是大型高档轿车类型的车
=========================
benchi
baoma Process finished with exit code 0

3.意义

第一个层面的封装,就是把东西装进麻袋。  类就是一种麻袋。

第二个层面的封装就是两个约定,单下横线 _,双下横线 __。

第三个层面的封装明确区分内外,外部无法直接调用。

举例:

class Car:
_star = 'benchi' # "_"表明是隐藏属性,不能在外部使用(不代表无法调用到)
__star1 = 'baoma' # "__"python给自动重命名,命名为"_Car__star1"。理论上对外部隐藏了
def __init__(self,name,type):
self.name = name
self.type = type
def get_type(self):
print('%s是%s类型的车' % (self.name,self.type)) def get_star(self):       # 接口函数
print(self.__star1) # 内部调用
c1 = Car('奔驰E600','大型高档轿车') c1.get_star()

运行结果:

baoma

Process finished with exit code 0

4.从根本意义上讲python没有从实际上限制你的访问。所以说没有绝对的封装

5.python中关于OOP的常用术语

----封装/接口

----合成

----派生/继承//继承结构

----泛化/特化

----多态

----自省/反射

python学习67-面向对象-封装的更多相关文章

  1. Python学习之==>面向对象编程(二)

    一.类的特殊成员 我们在Python学习之==>面向对象编程(一)中已经介绍过了构造方法和析构方法,构造方法是在实例化时自动执行的方法,而析构方法是在实例被销毁的时候被执行,Python类成员中 ...

  2. python学习day19 面向对象(一)封装/多态/继承

    面向对象 封装思想:将同一类的函数函数封装到同一个py文件中,方便调用 面向对象也有封装的作用,将同一类的函数封装到一个类中 多态(鸭子模型):多种类型/多种形态 #,什么事鸭子模型 对于一个函数,p ...

  3. Python学习-day6 面向对象概念

    开始学习面向对象,可以说之前的学习和编程思路都是面向过程的,从上到下,一步一步走完. 如果说一个简单的需求,用面向过程实现起来相对容易,但是如果在日常生产,面向对象就可以发挥出他的优势了. 程序的可扩 ...

  4. Python学习一(面向对象和函数式编程)

    学习了一周的Python,虽然一本书还没看完但是也收获颇多,作为一个老码农竟然想起了曾经荒废好久的园子,写点东西当做是学习笔记吧 对Python的语法看的七七八八了,比较让我关注的还是他编程的思想,那 ...

  5. Python学习--10 面向对象编程

    面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 本节对于面向对象的概念不做 ...

  6. python学习总结(面向对象进阶)

    -------------------类属性和实例属性关系------------------- 1.类属性和实例属性关系     1.实例属性         实例对象独有的属性     2.类属性 ...

  7. 从0开始的Python学习014面向对象编程

     简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象 ...

  8. python学习笔记----面向对象

    面向对象 类:成员变量(属性) 方法(操作成员变量) 出一个场景:玩过游戏.主人公,进入了一个场景,有10个小怪物是一样的.有攻击力,血(100格).如果小怪物有多个数值需要管理,小怪物的血量.小怪物 ...

  9. python学习 day23 面向对象三大特性之继承

    ### 面向对象三大特性值继承#### 1.什么是继承 继承是一种关系,必须存在两个对象才可能产生这种关系,在现实生活中的继承,王思聪可以继承王健林的财产 被继承的成为父,继承的一方成为子 在程序中, ...

  10. Python学习 :面向对象 -- 三大特性

    面向对象的三大特性 一.封装 把数据.值.变量放入到对象中 构造方法 _init_方法 特殊作用: 在 obj = 类名() 执行时: 内部自动执行两个步骤: 1.创建对象 2.通过对象执行类中的一个 ...

随机推荐

  1. LeetCode 801. Minimum Swaps To Make Sequences Increasing

    原题链接在这里:https://leetcode.com/problems/minimum-swaps-to-make-sequences-increasing/ 题目: We have two in ...

  2. hibernate之一对多关系

    1. 什么是关联(association) 1.1 关联指的是类之间的引用关系.如果类A与类B关联,那么被引用的类B将被定义为类A的属性.例如: public class A{ private B b ...

  3. gitbase cube.js schema 文件项目

    cube.js 进行数据分析,需要我们编写schema 文件,但是因为gitbase 的原因没发进行自动生成,而且还有些问题 所以做了一些简单的修改 注意直接使用cube-cli 0.9.0 可以自动 ...

  4. 关于html异步加载外部json文件报错问题

    一. HTML代码如下: 参考网站(echarts-JSON请求数据):https://blog.csdn.net/you23hai45/article/details/51585506 <!D ...

  5. 求斐波那契数列中的第N个数

    递推 递归 1.暴力递归 2.记忆化递归 对比下二者的效率

  6. @submit.native.prevent作用

    <el-form :inline="true" :model="geCarManageData" class="demo-form-inline ...

  7. centos7安装sql-server2017

    1.  关闭selinux Vim /etc/selinux/conf 将selinux=enable 改成selinux=disabled 2.  清空/关闭iptables策略 Iptables ...

  8. OpenFOAM——具有压差的平行平板间流动(泊肃叶流动)

    本算例翻译整理自:http://the-foam-house5.webnode.es/products/chapter-1-plane-parallel-plates-case/ 这个算例中两平板间没 ...

  9. 修复LSP 解决不能上网问题

    电脑突然不能上网,ping路由提示"传输失败,常见故障" 1, 打开CMD 2, 输入"netsh winsock reset" 回车 3, 重启电脑 LSP ...

  10. Jmeter(四十三)_性能测试分配堆内存

    内存泄漏.内存溢出是什么? 内存泄露是指你的应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源,这是一种状态描述: 内存溢出是指你应用的内存已经不能满足正常使用了,堆栈已经达到系统设置的最 ...