python_面向对象三大特征-封装
2019-06-05 19:27
375 查看
面向对象的三大特征:
封装,继承与多态
封装特征:
实际工作中很多的成员不方便为对象之外的访问或者操作的,所以需要限定以下是否可以操作成员。
封装特性就是对于成员操作进行限制的保护性措施!
封装方法:__属性 __方法
面向对象的封装分为三个级别: 私有化封装 private 受保护的封装 protected(在继承中讲解) 公共的封装 public 对象/类成员的访问: 1.当前类/对象内部访问 (在类的结构内部) 2.类和对象的外部访问 (在类的结构外部) 3.类和对象的子类/子对象的访问(在类的结构外部,在子类/对象的内部)
私有化封装: 方法:在成员属性或者方法名称之前,添加双下划线,就可以私有化成员。 特征:私有化的成员属性和方法,无法在类/对象的外部访问;私有化成员仅允许在类/对象的内部访问 公共的封装: 方法: 任何成员在没有进行私有化操作的时候默认都是公共的封装。 特征: 公共的封装成员属性和方法,在任何位置都可以被访问。 访问封装:(禁止使用) 内部访问:名称前加__双下划线即可
python封装秘密(并没有实现真正的私有化!):(了解,但是不允许使用)
其实python没由实现和其他语言一样的面向对象封装策略(还不是很完备)
私有化封装采用了name mangling(改名) 的策略实现的私有化操作。并不是真正的私有化! 改名策略:将原有成员属性或者方法名 修改为 _类名__成员名 访问使用对象._类名__成员名即可
# 面向对象三大特性:封装,继承,多态 # python的封装:1.公共的封装 2.私有化封装 3.受保护的封装 # 公共的封装 # 公共的封装 允许类的内外部进行访问 # 写一个类就是公共的封装 class FengZhuang: sex = "机器人" name = "人工智能" # 成员方法 def feng(self): print("封印起来") fz = FengZhuang() # # 私有化的封装 # 私有化的封装只能在类内部访问,不能在外部访问 # 私有化封装,就是在属性/方法名前加两个下划线__ class Human(): # 成员属性 name = "人类" __girlfriend = "女朋友" # 成员方法 def move(self): print(self.__girlfriend) self.__love() print("人类使用交通工具") def __love(self): print("开心的造人") wenguang = Human() wenguang.move() print(wenguang.__girlfriend) print(Human.girlfriend) # 调用成员方法 # 强行的访问私有化的属性 # python采用了改名策略来实现的私有化封装 class Human(): # 成员属性 name = "人类" __girlfriend = "女朋友" # 成员方法 def move(self): print(self.__girlfriend) self.__love() print("人类使用交通工具") def __love(self): print("开心的造人") wenguang = Human() # _类名__属性名/方法名 print(wenguang._Human__girlfriend) wenguang._Human__love()
相关文章推荐
- php面向对象的三大特征 封装,继承,多态
- java面向对象的三大基本特征之封装,继承,多态
- java面向对象三大特征之封装
- 面向对象三大基本特征——封装
- 黑马程序员_面向对象的三大特征封装、继承、多态
- PHP面向对象的三大特征: 继承,封装,多态
- Java程序设计7——面向对象三大特征:封装、继承、多态
- java中对面向对象的三大特征:封装、继承、多态的理解
- python3全栈开发-面向对象的三大特性(继承,多态,封装)之继承
- 面向对象三大特征——封装
- OC面向对象的三大特征 封装 ,继承,多态
- PHP面向对象的三大特征: 继承,封装,多态
- 韩顺平 javascript教学视频_学习笔记19_js面向对象三大特征(封装,继承,多态)
- 黑马程序员---java基础之面向对象(一)三大特征(封装,继承,多态)
- 面向对象三大特征之封装
- 面向对象三大特征之封装与static——(Java学习笔记四)
- Python 面对对象三大特征类的封装,继承,多态
- 黑马程序员学习日记 (四)面向对象三大特征: 封装 继承 多态
- 面向对象的三大特征(封装、继承、多态)
- OC面向对象的三大特征——封装、继承、多态