Python面向对象(三)
重点:类的封装
什么是封装?
- 封装:对属性和方法的抽象、隔离和保护;属性-变量;方法-函数
- 属性:私有属性和公开属性。私有属性:只能在类内部访问。公有属性:通过类/对象名访问。
- 方法:私有方法和公有方法。私有方法:只能在类内部使用。公开方法:可以通过类/对象名访问。
- 属性封装按两个维度,分为以下四种属性;
- 公开类属性--->类属性:在类空间定义的属性
- 私有类属性:仅供当前类访问的类属性,子类不能访问,私有类属性名开始需要有两个下划线,如__count---------->只能在类的内部被方法所访问,不能通过<类名/对象名>.<属性名>方式访问,利用方法中返回值的方法访问。这种方法的好处在于:可以在getCount()方法中判断访问的有效性、可以对访问次数进行计数......
- 公开实例属性:即实例属性,需要http://self.xxx来定义的属性
- 私有实例属性:属性名前加两下划线
- 小结:私有属性仅供类内部使用,可以对其进行保护,然而仅仅是形式上的保护
双下划线方法只是一种转换约定,转换后,类内原有名字发生了变化,是形式上的私有。通过如上的方式仍然可以访问私有属性。----->可以换个名字再访问
私有方法和公开方法
- 私有方法:只在类内部公开使用的方法,同样是名字前加两个下划线
- 同样也是形式上的私有,程序员逻辑而非安全逻辑,体现了python重视约定的理念
类的保留属性
- 特殊属性,双下划线开头和结尾
- 仅用类名访问的保留属性:
- 其他保留属性-->类名/对象名访问
- <类/对象>.__dict__返回对应成员的字典
类的保留方法
- python预留了保留方法的接口,但没有规定具体的保留方法逻辑,QQ号卖号平台保留方法的逻辑需要程序员编写
- 对应比较操作的保留方法
------------------------->>>>python类的继承
继承的理解
- 继承:代码复用的高级抽象,是新定义类能够几乎完全使用原有类属性与方法的过程
- 多级别继承:超类、父类、子类
- 多继承:派生类继承于多个基类
类继承的构建
- 定义继承
基类名可以带有路径:ModuleName.BaseClassName
- 派生类可以直接使用基类的属性和方法;使用基类的类方法和类属性时,要用基类的类名调用
- 继承关系的判断
- 派生类只能继承基类的公开属性和方法,不能继承基类的私有属性和私有方法
P21 00:00:00
Python面向对象(三)相关推荐
- Python——面向对象三特征
1.初识继承 什么是继承? --继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类. 子类会"遗传"父类的 ...
- python 面向对象(三)多继承
#!/usr/bin/python3#类定义 class people:#定义基本属性name = ''age = 0#定义私有属性,私有属性在类外部无法直接进行访问__weight = 0#定义构造 ...
- python面向对象思路_Python面向对象三要素-继承(Inheritance)
Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...
- python面向对象之面向对象三要素
面向对象三要素 封装: 通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口. 继承: 继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类);得 ...
- Python基础学习——面向对象编程(第一讲:面向对象概述、面向对象三个基本特征(封装性、继承性、多态性)、类和对象(定义类、创建和使用对象、实例变量、类变量、构造方法、实例方法、类方法、静态方法))
面向对象是Python最重要的特性,在Python中一切数据类型都是面向对象的. 1.面向对象概述 面向对象的编程思想是,按照真实世界客观事物的自然规律进行分析,客观世界中存在什么样的实体,构建软件系 ...
- python面向对象程序设计实践(初级)——以《三国演义》中三英大战吕布为例
python面向对象程序设计实践(初级) --以<三国演义>中三英大战吕布为例 设计实现思路: 定义武器类:武器名,攻击力 定义人物类:继承武器类,姓名,生命值 延时函数:延时0.5秒 实 ...
- python面向对象程序设计实践(高级)——以《三国演义》中三英大战吕布为例
python面向对象程序设计实践(初级) --以<三国演义>中三英大战吕布为例 设计实现思路: 设计类 定义武器类:武器名,攻击力 定义人物类:继承武器类,姓名,生命值 设计函数简化对象的 ...
- python 面向对象高级应用(三)
目录: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __ ...
- python面向对象实验报告_20192310 实验三《Python程序设计》实验报告
学号 2020-2021-1 <数据结构与面向对象程序设计>实验三报告 课程:<程序设计与数据结构> 班级: 1923 姓名: 严嘉钰 学号:20192310 实验教师:王志强 ...
- python面向对象的优点_Python面向对象编程——总结面向对象的优点
Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...
最新文章
- 我很笨,请带着真心靠近我
- python--从入门到实践--chapter 9 类
- 设计模式工作笔记-UML和设计模式导论
- python直方图教程_python如何画直方图
- 关于java的回调方法
- 不小心误删除Mac苹果系统联系人和Safari浏览器书签信息如何恢复?
- UIButton 文字图片排列
- 【数据预测】基于matlab人工蜂群算法优化BP神经网络数据预测 (含优化前对比)【含Matlab源码 078期】
- chromium os系统编译与环境搭建
- Java - 注解(Annotation)
- 蒜厂年会|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
- 配置ntpd提供网络授时服务
- win10OneNote登录微软 账号登陆出现错误码0x80190001
- 【Nodejs】448- 深入学习 Node.js Buffer
- DIST@SAU实验室学生博客名单
- 关于HTML网页生成网站
- 函数参数传递三种方式(传值方式,地址传递,引用传递)
- watch取消配对怎么重新配对_Apple Watch 怎么重新配对iphone手机
- 改进YOLOv5系列:21.添加CBAM注意力机制
- 8086汇编push和pop指令注意点(push pop 只对字操作(不允许字节进栈))
热门文章
- 学习难?求职难?90分钟点亮你的AI求职之路!
- python论坛签到_论坛自动签到教程
- kali 2020 ssh自启动_自动化所于2020年“国科大杯”创新创业大赛获得多项奖项
- 该页面仅以HTML格式保存_第七节:框架搭建之页面静态化的剖析
- python用format保留三位小数_关于Python 保留小数使用format、%、round()、Decimal函数及format和%只能保留到六位问题...
- mysql数据库与oracle_oracle与mysql数据库的区别
- mysql备份时候事务日志_SQLSERVER备份事务日志的作用
- 深度学习总结:continuous actions和asyncronous advanteage actor-critic
- 单机、集群与分布式的概念(转)
- 利用jdbc做一个购买的事务