重点:类的封装

什么是封装?

  • 封装:对属性和方法的抽象、隔离和保护;属性-变量;方法-函数
  • 属性:私有属性和公开属性。私有属性:只能在类内部访问。公有属性:通过类/对象名访问。
  • 方法:私有方法和公有方法。私有方法:只能在类内部使用。公开方法:可以通过类/对象名访问。
  • 属性封装按两个维度,分为以下四种属性;

  • 公开类属性--->类属性:在类空间定义的属性
  • 私有类属性:仅供当前类访问的类属性,子类不能访问,私有类属性名开始需要有两个下划线,如__count---------->只能在类的内部被方法所访问,不能通过<类名/对象名>.<属性名>方式访问,利用方法中返回值的方法访问。这种方法的好处在于:可以在getCount()方法中判断访问的有效性、可以对访问次数进行计数......

  • 公开实例属性:即实例属性,需要http://self.xxx来定义的属性
  • 私有实例属性:属性名前加两下划线

  • 小结:私有属性仅供类内部使用,可以对其进行保护,然而仅仅是形式上的保护

双下划线方法只是一种转换约定,转换后,类内原有名字发生了变化,是形式上的私有。通过如上的方式仍然可以访问私有属性。----->可以换个名字再访问

私有方法和公开方法

  • 私有方法:只在类内部公开使用的方法,同样是名字前加两个下划线

  • 同样也是形式上的私有,程序员逻辑而非安全逻辑,体现了python重视约定的理念

类的保留属性

  • 特殊属性,双下划线开头和结尾
  • 仅用类名访问的保留属性:

  • 其他保留属性-->类名/对象名访问

  • <类/对象>.__dict__返回对应成员的字典

类的保留方法

  • python预留了保留方法的接口,但没有规定具体的保留方法逻辑,QQ号卖号平台保留方法的逻辑需要程序员编写

  • 对应比较操作的保留方法


------------------------->>>>python类的继承

继承的理解

  • 继承:代码复用的高级抽象,是新定义类能够几乎完全使用原有类属性与方法的过程

  • 多级别继承:超类、父类、子类
  • 多继承:派生类继承于多个基类

类继承的构建

  • 定义继承

基类名可以带有路径:ModuleName.BaseClassName

  • 派生类可以直接使用基类的属性和方法;使用基类的类方法和类属性时,要用基类的类名调用

  • 继承关系的判断

  • 派生类只能继承基类的公开属性和方法,不能继承基类的私有属性和私有方法

P21 00:00:00

Python面向对象(三)相关推荐

  1. Python——面向对象三特征

    1.初识继承 什么是继承? --继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类. 子类会"遗传"父类的 ...

  2. python 面向对象(三)多继承

    #!/usr/bin/python3#类定义 class people:#定义基本属性name = ''age = 0#定义私有属性,私有属性在类外部无法直接进行访问__weight = 0#定义构造 ...

  3. python面向对象思路_Python面向对象三要素-继承(Inheritance)

    Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...

  4. python面向对象之面向对象三要素

    面向对象三要素 封装: 通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口. 继承: 继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类);得 ...

  5. Python基础学习——面向对象编程(第一讲:面向对象概述、面向对象三个基本特征(封装性、继承性、多态性)、类和对象(定义类、创建和使用对象、实例变量、类变量、构造方法、实例方法、类方法、静态方法))

    面向对象是Python最重要的特性,在Python中一切数据类型都是面向对象的. 1.面向对象概述 面向对象的编程思想是,按照真实世界客观事物的自然规律进行分析,客观世界中存在什么样的实体,构建软件系 ...

  6. python面向对象程序设计实践(初级)——以《三国演义》中三英大战吕布为例

    python面向对象程序设计实践(初级) --以<三国演义>中三英大战吕布为例 设计实现思路: 定义武器类:武器名,攻击力 定义人物类:继承武器类,姓名,生命值 延时函数:延时0.5秒 实 ...

  7. python面向对象程序设计实践(高级)——以《三国演义》中三英大战吕布为例

    python面向对象程序设计实践(初级) --以<三国演义>中三英大战吕布为例 设计实现思路: 设计类 定义武器类:武器名,攻击力 定义人物类:继承武器类,姓名,生命值 设计函数简化对象的 ...

  8. python 面向对象高级应用(三)

    目录: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __ ...

  9. python面向对象实验报告_20192310 实验三《Python程序设计》实验报告

    学号 2020-2021-1 <数据结构与面向对象程序设计>实验三报告 课程:<程序设计与数据结构> 班级: 1923 姓名: 严嘉钰 学号:20192310 实验教师:王志强 ...

  10. python面向对象的优点_Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

最新文章

  1. 我很笨,请带着真心靠近我
  2. python--从入门到实践--chapter 9 类
  3. 设计模式工作笔记-UML和设计模式导论
  4. python直方图教程_python如何画直方图
  5. 关于java的回调方法
  6. 不小心误删除Mac苹果系统联系人和Safari浏览器书签信息如何恢复?
  7. UIButton 文字图片排列
  8. 【数据预测】基于matlab人工蜂群算法优化BP神经网络数据预测 (含优化前对比)【含Matlab源码 078期】
  9. chromium os系统编译与环境搭建
  10. Java - 注解(Annotation)
  11. 蒜厂年会|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
  12. 配置ntpd提供网络授时服务
  13. win10OneNote登录微软 账号登陆出现错误码0x80190001
  14. 【Nodejs】448- 深入学习 Node.js Buffer
  15. DIST@SAU实验室学生博客名单
  16. 关于HTML网页生成网站
  17. 函数参数传递三种方式(传值方式,地址传递,引用传递)
  18. watch取消配对怎么重新配对_Apple Watch 怎么重新配对iphone手机
  19. 改进YOLOv5系列:21.添加CBAM注意力机制
  20. 8086汇编push和pop指令注意点(push pop 只对字操作(不允许字节进栈))

热门文章

  1. 学习难?求职难?90分钟点亮你的AI求职之路!
  2. python论坛签到_论坛自动签到教程
  3. kali 2020 ssh自启动_自动化所于2020年“国科大杯”创新创业大赛获得多项奖项
  4. 该页面仅以HTML格式保存_第七节:框架搭建之页面静态化的剖析
  5. python用format保留三位小数_关于Python 保留小数使用format、%、round()、Decimal函数及format和%只能保留到六位问题...
  6. mysql数据库与oracle_oracle与mysql数据库的区别
  7. mysql备份时候事务日志_SQLSERVER备份事务日志的作用
  8. 深度学习总结:continuous actions和asyncronous advanteage actor-critic
  9. 单机、集群与分布式的概念(转)
  10. 利用jdbc做一个购买的事务