Python学习之路_day_25(面向对象之封装/多态/组合)
一、组合
- 什么是组合:
组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象。
2. 为何要用组合
通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式,可以间接地将两个类关联/整合/组合到一起
从而减少类与类之间代码冗余
二、多态:
1. 什么是多态
多态指的是同一种/类事物的不同形态
2. 为何要用多态
多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象
多态性的精髓:统一
python崇尚鸭子类型
三、封装:
1. 什么是封装
装:往容器/名称空间里存入名字
封:代表将存放于名称空间中的名字给藏起来,这种隐藏对外不对内
2. 为何要封装
【封装】
隐藏对象的属性和实现细节,仅对外提供公共访问方式。
【好处】
1. 将变化隔离;
2. 便于使用;
3. 提高复用性;
4. 提高安全性;
【封装原则】
1. 将不需要对外提供的内容都隐藏起来;
2. 把属性都隐藏,提供公共方法对其访问。
3. 如何封装
在类内定义的属性前加__开头(没有__结果)
总结:
1. __开头的属性实现的隐藏仅仅只是一种语法意义上的变形,并不会真的限制类外部的访问
2. 该变形操作只在类定义阶段检测语法时发生一次,类定义阶段之后新增的__开头的属性并不会变形
3. 如果父类不想让子类覆盖自己的属性,可以在属性前加__开头
四、property
property装饰器是用来将类内的函数属性伪装成数据属性
转载于:https://www.cnblogs.com/zjh009/p/9511652.html
Python学习之路_day_25(面向对象之封装/多态/组合)相关推荐
- Python学习之路9☞面向对象的程序设计
Python学习之路9☞面向对象的程序设计 一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什 ...
- Python学习之路—2018/7/14
Python学习之路-2018/7/12 3.功能开发 3.3 设计博客首页 博客首页中最重要的就是中间的文章区域,所以我首先把文章区域设计出来,一开始并没有数据,如果用orm添加或者直接在数据库添加 ...
- python学习之路0x00
Python学习之路0x00 在学习python之前,要知道什么是python? python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,与c语言不同, c语言要编译后才能执行.而 ...
- python学习之路:python连接阿里云ODPS
python学习之路:python连接阿里云ODPS 前言 本人最近在学习使用ODPS,希望把学习过程记录下来,方便自己查阅. 1.安装ODPS pip install ODPS 2.连接阿里云odp ...
- python之路 mysql 博客园_教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql...
教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql Easy_install安装MySQLdb 很简单,以至于我不晓得该怎么说.一句话. sodu ...
- Python学习之路—2018/6/20
Python学习之路-2018/6/20 1.模板语法之变量 views.py def index(request):import datetimes="gyq"l=[1,2,3] ...
- python 学习之路开始了
python 学习之路开始了.....记录点点滴滴.... 转载于:https://www.cnblogs.com/chobit/p/6163287.html
- Python学习之路5☞文件处理
Python学习之路5☞文件处理 一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 1 正趣果上果 2 Interesting fruit fruit 3 4 ...
- 我的Python学习之路(一)_Mr_Ouyang
我的Python学习之路(一)_Mr_Ouyang 笔者按: 本文从18:55开始写作,至19:38中断,又从21:12始继续,至23:22写就. 共计耗时113分钟,总字数9081字,约80.4字/ ...
最新文章
- TensorRT-8量化分析
- 现在,Serverless 真的已经成熟了吗?
- DNS是如何工作—Vecloud微云
- Python_Mix*OS模块,序列化模块种的json,pickle
- 23、Power Query-XML与JSON数据获取
- 关于windows消息机制的猜想
- 华为3Com Quidway 2116-SI
- 魅族mx5游戏模式小熊猫_您不知道的5大熊猫技巧
- 创建线程都有哪些方式?— Callable篇
- android开发学习---开发一个简易的短信发送器
- Windows API数据类型表
- ARINC429数据总线简介
- 符号链接symlink_Linux中的Symlink教程–如何创建和删除符号链接
- 国内地图服务对比分析
- ssget 用法详解
- JAVA集成微信支付 周期扣费
- 【自然语言处理】词性标注
- golang: grpc: received message larger than max
- 让计算机u盘启动,U盘启动设置|电脑如何设置U盘启动?
- 达梦8初始化参数之BLANK_PAD_MODE
热门文章
- Linux下安装配置Jenkins
- HAProxy反向代理搭建discuz论坛
- 光伏农业七大问题不解决 投资者恐“先驱”变“先烈”
- Python基础6:深浅拷贝
- Java中如何判断某天是星期几
- 全国计算机棋类竞赛,自主招生认可的12类主流竞赛详解
- 飞船向上飞pygame用k_up_十分钟就能用Python教你开发出一个迷你打飞机的游戏
- C语言137页答案,综合化学实验答案题库(137页)-原创力文档
- Java并发包JUC的Lock锁讲解
- android钱包nfc功能,Android NFC(二)M1卡电子钱包功能