封装

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的常用术语

----封装/接口

----合成

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

----泛化/特化

----多态

----自省/反射

最新文章

  1. 在活动中使用Menu
  2. 踏着前人的脚印学Hadoop——RPC源码
  3. 关于Filezilla是否支持sftp
  4. 转: React系统的入门系统
  5. android 登陆案例_最终版本 sharedpreference
  6. CSS3 @font-face详细用法(转)
  7. 【USACO 2.1.5】海明码
  8. php 之 注册审核(0523)
  9. Android 异步链式调用设计
  10. build path--use as source folder 应用
  11. JS高级程序设计第3章读书笔记
  12. Servlet服务器、客户端跳转
  13. python的日志配置
  14. 1.6 selenium3+firefox环境搭建
  15. day10-高阶函数
  16. matlab调用规则变量名eval函数
  17. 头像修改功能 包含ios旋转图片 但是旋转后没遮罩, 正常图片可以显示遮罩 宽高不规则图片没做控制 遮罩框可以拖动
  18. 让github忽略某些文件
  19. 十天精通CSS3(11)
  20. java基础---->FilenameFilter之文件过滤

热门文章

  1. LeetCode 449. Serialize and Deserialize BST
  2. learning scala list.collect
  3. The two of the oldest man need cheers
  4. javascript之数组的全部排列组合
  5. Luogu5206 【WC2019】数树 【容斥,生成函数】
  6. JVM内存的划分
  7. OpenFOAM——同心环中的自然对流
  8. ubuntu之路——day15.2 只用python的numpy在底层检验正则化对模型的影响
  9. Python selenium PO By.XPATH定位元素报错
  10. android: android 布局中的weight 属性