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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

exp/imp和expdp/impdp在功能上的区别:

exp/imp和expdp/impdp在功能上的区别&#xff1a;   1、把用户usera的对象导入到userb   emp/imp用法&#xff1a;   formuserusera touseruserb;   empdp/impdp用法&#xff1a;   remap_schema‘usera’:‘userb’   例如&#xff1a;   imp system/password f…

Java_枚举

枚举 JDK1.5引入枚举类型, 枚举类型的定义包括枚举的声明和枚举体 enum Season {SPRING, SUMMER, AUTUMN, WINDER } 所有的枚举类型隐性的继承来自java.langEnum, 枚举实质上还是类, 而每个被枚举的成员实质就是一个枚举类型的实例, 它们默认都以public static final修饰, 可以…

oracle数据库实例,数据库的理解

数据库就是一个相片底片 实例就是相纸 一个底片可以冲多个相纸&#xff0c;但一张相纸最多冲一个底片。 tom的一个解释 数据库&#xff08;database&#xff09;&#xff1a;物理操作系统文件或磁盘&#xff08; disk&#xff09;的集合。使用Oracle 10g 的自动存储管理&#…

keepalive日志_12.日志收集项目-数据流图以及nginx安装

数据流图nginx安装中文文档http://tengine.taobao.org/nginx_docs/cn/docs/基础依赖与安装yum -y install gcc gcc-c autoconf pcre pcre-devel make automakeyum -y install wget vim httpd-toolsyum源在官网拷贝vi /etc/yum.repos.d/nginx.repo[nginx-stable]namenginx stabl…

【算法】禁忌搜索算法(Tabu Search,TS)超详细通俗解析附C++代码实例

01 什么是禁忌搜索算法&#xff1f; 1.1 先从爬山算法说起 爬山算法从当前的节点开始&#xff0c;和周围的邻居节点的值进行比较。 如果当前节点是最大的&#xff0c;那么返回当前节点&#xff0c;作为最大值 (既山峰最高点)&#xff1b;反之就用最高的邻居节点来&#xff0c;替…

java学习(14):java命名规范

//任务 4 在控制台打印输出java标识符定义规则。具体包括&#xff1a; //1&#xff09;类名定义规则 //2&#xff09;方法名定义规则 //3&#xff09;变量定义规则 //4&#xff09;常量定义规则 一、命名规范 1、 项目名全部小写 2、 包名全部小写 3、 类名首字母大写&…

jdbc获取clob图片_jdbc方式读取oracle的clob字段实例

可能大家也都习惯了spring和hibernate对CLOB字段的处理&#xff0c;在spring中配置clob的oracle处理句柄&#xff0c;在hibernate中配置映射类型&#xff0c;然后就可以很轻松的以String 的形式处理大字段。今天我做了个需求&#xff0c;需要以jdbc的方式从mysql导一些备份数据…

14. Java基础之泛型

一. 泛型概念的提出&#xff08;为什么需要泛型&#xff09;&#xff1f; 首先&#xff0c;我们看下下面这段简短的代码: 1 public class GenericTest {2 3 public static void main(String[] args) {4 List list new ArrayList();5 list.add("qqyum…

java学习(15):巩固练习

//任务 1 //编写控制台java程序&#xff0c;使用Scanner 对象相关方法从 //控制台接收用户输入如下数据并使用相关的局部变量接收&#xff0c;在控制台打印输出。 //老师的姓名&#xff1b;老师的性别&#xff1b;老师的工资&#xff1b;老师的年龄&#xff1b;工作时长 import…

java学习(16):巩固练习

/任务 2 编写控制台java程序&#xff0c;将以下数据使用合理类型变量进行接收赋值 3.5&#xff1b;185.59&#xff1b;8500.50 要求在控制台打印这些数据并只显示整数部分。/ import java.util.Scanner; public class test02{ public static void main(String[] args){ Scanner…

mac电脑投屏到小米盒子_苹果手机搜不到小米盒子怎么办?

刚买的小米电视盒子迫不及待想投屏&#xff0c;但是手机是苹果系统&#xff0c;都是连得同一wifi&#xff0c;可是手机就是搜索不到小米家的客厅电视&#xff0c;这种情况该怎么办呢&#xff1f;以下小编给大家详细介绍了苹果手机搜不到小米盒子该怎么办。苹果设备中搜不到小米…

Redis实现之对象(三)

集合对象 集合对象的编码可以是intset或者hashtable&#xff0c;intset编码的集合对象使用整数集合作为底层实现&#xff0c;集合对象包含的所有元素都被保存在整数集合里面。举个栗子&#xff0c;以下代码将创建一个图1-12所示的intset编码集合对象&#xff1a; 127.0.0.1:637…

java学习(17):巩固练习

//#任务 3 //#已知有三个人&#xff0c;张无忌&#xff0c;任盈盈&#xff0c;任我行。当前只知道任盈盈的年龄 //#可以被用户从控制台输入&#xff0c;并且用户可以告知任盈盈的年龄比张无忌的年龄小几岁&#xff0c; //#任我行年龄是张无忌和任盈盈年龄和还要大几岁&#xff…

mysql innodb redolog_MySQL · 引擎特性 · InnoDB redo log漫游(转)

前言InnoDB 有两块非常重要的日志&#xff0c;一个是undo log&#xff0c;另外一个是redo log&#xff0c;前者用来保证事务的原子性以及InnoDB的MVCC&#xff0c;后者用来保证事务的持久性。和大多数关系型数据库一样&#xff0c;InnoDB记录了对数据文件的物理更改&#xff0c…

Jenkins配置:添加用户和管理权限

Jenkins配置&#xff1a;添加用户和管理权限 参考文章&#xff1a;http://www.cnblogs.com/zz0412/p/jenkins_jj_14.html 今天给大家说说使用Jenkins专有用户数据库的配置&#xff0c;和一些常用的权限配置。 配置用户注册 在新安装好的jenkins中&#xff0c;默认是没有设置用户…

java学习(18):巩固练习

/任务 4 白大壮和白二壮是双胞胎兄弟&#xff0c; 白大壮的身高增加1厘米正好是白二壮的身高 &#xff0c;白二壮体重正好是妹妹白无瑕体重&#xff0c;编写程序完成白大壮 和白二壮身高的计算并输出&#xff0c;并计算白无瑕的体重输出是多少/ import java.util.Scanner; publ…

mysql 读取comment_Mysql 获取表的comment 字段

查看获取表内字段注释&#xff1a;> show full columns from tablename;或是show full fields from tablename;或是&#xff0c;在元数据的表里面看Select COLUMN_NAME 列名, DATA_TYPE 字段类型, COLUMN_COMMENT 字段注释from INFORMATION_SCHEMA.COLUMNSWhere table_name …

java-appium-527进阶-1 UiAutomator12区别和封装

1.UiAutomator和UiAtumator2的区别&#xff1a; 1.1 UiAutomator1有关于id定位的策略 UiAutomator1 id定位在resourceid匹配失败时&#xff0c;会匹配contentDesc。 安卓会根据id进行3种情况的判断&#xff1a; 1.resourceId 如user_profile_icon2.accessibility id3.Strings.…

java学习(19):巩固练习

/任务 5 有三位老师&#xff0c;王老师&#xff0c;孙老师和小李老师&#xff0c; 王老师工龄最长(15年)&#xff0c;孙老师工龄比王老师小3年&#xff0c; 小李老师工龄最短&#xff0c;是王老师和孙老师工龄和的二分之一 再除以2的余数正好是他的工龄&#xff0c;编写程序从控…

mysql分组获取其他字段_sqlserver group by后获取其他字段(多种方法)

大家都知道用group by的话&#xff0c;select 后面指定的字段必须与group by后面的一致。group by 只有个别字段&#xff0c;如果拿出其他未分组的字段信息呢&#xff1f;在网上搜了下&#xff0c;总结如下&#xff1a;使用了group by 之后&#xff0c;就要求select后面的字段包…