python学习67-面向对象-封装
2024-10-19 23:48:38
封装
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的常用术语
----封装/接口
----合成
----派生/继承//继承结构
----泛化/特化
----多态
----自省/反射
最新文章
- 在活动中使用Menu
- 踏着前人的脚印学Hadoop——RPC源码
- 关于Filezilla是否支持sftp
- 转: React系统的入门系统
- android 登陆案例_最终版本 sharedpreference
- CSS3 @font-face详细用法(转)
- 【USACO 2.1.5】海明码
- php 之 注册审核(0523)
- Android 异步链式调用设计
- build path--use as source folder 应用
- JS高级程序设计第3章读书笔记
- Servlet服务器、客户端跳转
- python的日志配置
- 1.6 selenium3+firefox环境搭建
- day10-高阶函数
- matlab调用规则变量名eval函数
- 头像修改功能 包含ios旋转图片 但是旋转后没遮罩, 正常图片可以显示遮罩 宽高不规则图片没做控制 遮罩框可以拖动
- 让github忽略某些文件
- 十天精通CSS3(11)
- java基础---->;FilenameFilter之文件过滤
热门文章
- LeetCode 449. Serialize and Deserialize BST
- learning scala list.collect
- The two of the oldest man need cheers
- javascript之数组的全部排列组合
- Luogu5206 【WC2019】数树 【容斥,生成函数】
- JVM内存的划分
- OpenFOAM——同心环中的自然对流
- ubuntu之路——day15.2 只用python的numpy在底层检验正则化对模型的影响
- Python selenium PO By.XPATH定位元素报错
- android: android 布局中的weight 属性