封装 什么是封装: # 将复杂的丑陋的隐私的细节隐藏到内部,对外提供简单的使用接口 或 # 对外隐藏内部实现细节,并提供访问的接口 为什么需要封装 1.为了保证关键数据的安全性 2.对外部隐藏内部的实现细节,隔离复杂度 什么时候需要封装: # 当有一些数据不希望外界可以直接修改时,# 当有一些函数不希望给外界使用时 如何使用封装 语法:(给属性或者方法前面加上 __ 双下划线,外界就访问不到了) ​ 用户的身份证号等信息属于用户的隐私,肯定不能直接暴露给外界可以直接访问或修改,那么就不能把它作为…
Python面向对象04 /封装.多态.鸭子类型.类的约束.super 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 3. 鸭子类型 4. 类的约束 5. super的深度剖析 1. 封装 把一堆东西(代码,数据)放到一个地方(空间),并且可以使用,比如:函数,类 2. 多态 一个事物可以呈现多种形态 , 例如:水可以支持固态.液态.气态 Python默认支持多态(Java是强定义语言,Python是弱定义语言) Python一个变量可以支…
https://www.cnblogs.com/liubing8/p/11321099.html 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 3. 鸭子类型 4. 类的约束 5. super的深度剖析 1. 封装 把一堆东西(代码,数据)放到一个地方(空间),并且可以使用,比如:函数,类 2. 多态 一个事物可以呈现多种形态 , 例如:水可以支持固态.液态.气态 Python默认支持多态(Java是强定义语言,Python是弱定义语言)…
python面向对象(封装,继承,多态) 学习完本篇,你将会深入掌握 如何封装一个优雅的借口 python是如何实现继承 python的多态 封装 含义: 1.把对象的属性和方法结合成一个独立的单位,并尽可能隐蔽对象的内部细节(尤其是私有数据) 2.目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而,使软件错误能够局部化,大大减少查错和排错的难度. 类的继承 体现 1.设置对象中的成员变量和方法的访问权限,使用 __member(方法也是这样定义),只能被类内部的方法访问,不被外部…
多态 问起面向对象的三大特性,几乎每个人都能对答如流:封装.继承.多态.今天我们就要来说一说 Python 中的多态. 所谓多态:就是指一个类实例的相同方法在不同情形有不同表现形式.多态机制使具有不同内部结构的对象可以共享相同的外部接口.这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用. 我在<Python 中的设计模式详解之:策略模式>一文中详细描述了策略模式的实现,而策略模式就是典型的多态应用. 之前的代码我就不贴了,大家可以去原文中…
目录 面向对象之封装 @property 面向对象之多态 面向对象之反射 面向对象之封装 含义 将类中的某些名字按照特殊的书写方式"隐藏"起来,不让外界直接调用,目的是为了不然外界可以直接修改类中的名字,而是提供专门的通道去访问,在通道内可以添加额外的功能. 实现 在类中可以使用双下划线开头(__)的命名方式来实现封装效果. class A: # 使用双下划线开头 __name = 'from A' print(A.__name) # 报错,显示找不到"__name"…
接着上面的一篇继续往下: 如何隐藏 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) class A: __x = 1 # _A__x = 1 def __init__(self, name): self.__name = name # self._A__name = name def __fun1(self): print("run fun1.......") def fun2(self): self.__fun1() # self._A__fun1() print…
python 接口类和抽象类 为什么讲封装之前要将这个东西? 我才不会说为什么 首先: python没有接口类这个概念!!!!!!!! 哈哈哈......神经病 python抽象类和接口类更接近于一种规范,例如,我吃苹果,吃香蕉,吃梨,这些我都可以统一归到吃水果这个类中,但是我能吃到这个水果吗?????  水果这个笼统的东西我能吃到吗,我只能吃到具体的香蕉什么的......... 这个规范不止一个,可以制定多个! 应该能明白这个意思吧....... from abc import ABCMeta…
面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象,然后 让对象调用方法 对象方法的细节 都被 封装 在 类的内部 02. 小明爱跑步 需求 小明 体重 75.0 公斤 小明每次 跑步 会减肥 0.5 公斤 小明每次 吃东西 体重增加 1 公斤  提示:在 对象的方法内部,是可以 直接访问对象的属性 的! 代码实现: class Person:…
面向对象 - 封装: 封装:在类定义阶段,以__开头的属性名发生了变形 eg: __x --> _A__x / __foo --> _A__foo 1.特点: 1.在类外部无法直接访问 __x 是 _A__x 2.在类内部可以直接使用 self.__foo() == self._A__foo() 3.子类无法覆盖父类以__开头的属性 因为根本不是一个名字 __x _A__x 2.总结: 这种变形需要注意的问题: 1.这种机制也并没有真正意义上限制我们从外部直接访问属性,知道了类名和属性名就可以…