Python全栈开发——面向对象的三大特性(继承 多态 封装)
1.继承
1.两层意思
改变和扩展(详细看随笔继承和组合)
2.多态(体现在运行时的状态)
1.不同的类可以调用相同的方法,得到不同的结果
2.实际上是继承的一种体现机制
class H2o:def __init__(self,name,temperature):self.name=nameself.temperature=temperaturedef turn_ice(self):if self.temperature<0:print('温度太低,变成【%s】' %self.name)if self.temperature>100:print('温度太高,变成【%s】' %(self.name))if self.temperature>=0 and self.temperature<=100:print('温度适中,变成【%s】' %self.name) class water(H2o):pass class ice(H2o):pass class Steam(H2o):pass w1=water('water',46) i1=ice('ice',-12) s=Steam('stream',199)w1.turn_ice() # 温度适中,变成【water】 i1.turn_ice() # 温度太低,变成【ice】 s.turn_ice() #温度太高,变成【stream】
3.封装
1.抛开面向对象,你单独想什么是装,装就是拿一个麻袋,把小猫, 小狗等一起装进麻袋 ,在面向对象中,
这个麻袋就是你的类或对象,类或对象这两个麻袋 装了数据属性和函数属性,那么对于类或对象来说,封的概念代表隐藏
2.两种方法隐藏
1.在前面加 (_) (实际上是一种约定,还可以访问,但程序员知道访问这个不对)
2.在前面加(__) (实际上是字符串拼接)
class Peoson:_star='earth'def __init__(self,name,age):self._name=nameself.__age=age p1=Peoson('lujiacheng',19) print(p1._star) #earth print(p1._name) #lujiacheng print(p1._Peoson__age) #19 实际上是拼接
3.第三层次的封装:区分内外(利用第二层次的封装),外部没法访问,只在内部使用, 外部要访问,可定义一个接口(即函数),
供外部访问 (但设计时要充分考虑数据是否要封装,不然接口很多,所以不能乱用封装)
转载于:https://www.cnblogs.com/lujiacheng-Python/p/9736163.html
Python全栈开发——面向对象的三大特性(继承 多态 封装)相关推荐
- python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)
一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...
- Python全栈开发——面向对象进阶(一切皆对象)
1.isinstance(obj,cls) 检查obj是否是类cls的对象, issubclass(sub,super) 检查sub是否是super的子类 #i ...
- python全栈开发中级班全程笔记(第三模块、第一章(1.面向对象基础))
python全栈开发笔记第三模块 第一部分 第一章 :面向对象(类) 一.面向过程编程1.面向过程编程:主要是过程二字,所谓过程,就是指解决问题的步骤,也可以说是设计一套流水线(机 ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进 ...
- python全栈开发工程师_【2018重磅巨献】老男孩Python高级全栈开发工程师第三期...
2018年老男孩python全栈第三期老男孩python全栈3期 老男孩教育Python全栈开发为国内首家专注python全方面开发的教育机构 老男孩Python全栈第三期课程详细目录,高清不加密! ...
- Python全栈开发【基础-09】深浅拷贝+while循环
专栏介绍: 本专栏为Python全栈开发系列文章,技术包括Python基础.函数.文件.面向对象.网络编程.并发编程.MySQL数据库.HTML.JavaScript.CSS.JQuery.boots ...
- 参加python全栈开发培训需要多少钱?
python是一门高级的编程语言,也是非常受欢迎的编程语言,应用领域广泛.薪资待遇高,可以从业范围多,越来越多人都想要学习python,那么参加python全栈开发需要多少钱? 许多人对python的 ...
- 路飞学城python全栈开发_[Python] 老男孩路飞学城Python全栈开发重点班 骑士计划最新100G...
简介 老男孩&路飞学城Python全栈开发重点班课程,作为Python全栈教学系列的重头戏,投入了全新的课程研发和教学精力,也是Python骑士计划的核心教学,由ALEX老师开班镇守,一线技术 ...
- python全栈开发要学些什么_战争热诚的python全栈开发之路
从学习python开始,一直是自己摸索,但是时间不等人啊,所以自己为了节省时间,决定报个班系统学习,下面整理的文章都是自己学习后,认为重要的需要弄懂的知识点,做出链接,一方面是为了自己找的话方便,一方 ...
最新文章
- 一卡顶四卡,清华推出工具包BMInf玩转百亿大模型
- avalon $computed不起作用?
- C++初学基础知识——注释、变量、基本数据类型
- 有些道理经历过就是道理,没经历过可能就是心灵鸡汤。
- 五桌面工具来创建优秀的Windows环境
- python两列相乘_如何将pandas中具有不同索引的两列相乘?
- QT设置相对路径最简单方法
- php yii2模块,Yii2 之 frontend 子模块实践之四:路由美化
- Zabbix通过Smokeping检测网络质量并告警
- android组件化数据生命周期,Android组件化开发实践(七):开发常见问题及解决方案...
- Vivado中常用的几种仿真浅论
- Android 抓包工具
- Android11 如何将系统默认设置中文
- c语言汇编混合编译不了,IAR汇编与C语言混合编程的问题(内附源程序)
- 数通 | 静态路由表的配置(含负载分担、路由备份)
- word尝试打开文件时遇到错误 解决方法
- BIM技术在家装中有5大应用,您知道吗?
- 基于JAVA实现的超级马里奥(Super Mario)游戏
- 将VS2019设置成英文版
- 今日金融词汇---金融衍生品,是什么?