python面向对象三大特性

继承,封装,多态

1.封装

体现在两个方面:

  • 将同一类方法封装到了一个类中
  • 将数据封装到对象中,在实例化对象时,可以通过__init__初始化方法在对象中封装一些数据,便于以后使用

2.继承

子类继承父类中的方法和类变量(不是拷贝一份,父类还是属于父类,子类可以继承而已)

  • 父类又称基类
  • 子类又称派生类

class Base:def func(self):print("base")
#Son继承Base
class Son(Base):def show(self):print("son")
s1=Son()
s1.show()
#s1调用func(),自己没有,找父类
s1.func()

小结

  • 执行对象.方法时,优先去当前对象所关联的类中找,没有再去父类找
  • python支持多继承:先继承左边,在继承右边
  • 确认self到底是谁?去self对应的那个类中去获取成员,没有就按照继承关系向上查找
  • 继承存在的意义:将公共的方法提取到父类中,增强代码的重用性
  • 继承方式
    • 继承
    • 多继承
  • 调用类中的成员,规则
    • 优先在自己的类中找,没有去父类找
    • 存在多继承(多个父类),先左后右

3.多态

多态,字面意思就是多种形态

由于python对数据类型没有任何限制,所以他天生支持多态

def func(arg):v1=arg.copy()print(v1)
func(['wxy'])
func([1,2,3])
class Email(object):def send(self):print("发邮件")
class Message(object):def send(self):print("发短信")
def func(arg):v1=arg.send()print(v1)
v1=Email()
#将v1对象以参数的形式传入给func()函数
func(v1)
v2=Message()
#将v2对象以参数的形式传入给func()函数
func(v2)
# 发邮件
# None
# 发短信
# None

在程序设计中,鸭子类型(duck typing)是动态类型的一种风格,在鸭子类型中,关注点在于对象的行为,能做什么;而不是关心对象所属的类

python面向对象三大特性相关推荐

  1. 【Python面试】 说说Python面向对象三大特性?

    往期面试题: 谈谈对 Python 和其他语言的区别? 说说 Python 解释器种类以及特点? 说说4种常用编码的区别? 废话不多说,开始今天的题目: 问:说说Python面向对象三大特性? 答:P ...

  2. 2.1.1 Python面向对象三大特性

    点击跳转Python笔记总目录 Python面向对象三大特性 1,继承 1,继承和组合 组合 继承 2,封装 2.0 私有变量和私有方法 2.1 封装与扩展性 2.2 property属性 2.3 c ...

  3. python面向对象——三大特性

    python面向对象--三大特性 1. 引言 Python是面向对象的语言,自然也支持面向对象的三大特性:封装.继承.多态. 因为Python2已经较为古老,所有除非是阐述区别,大部分情况下Pytho ...

  4. python 面向对象(三大特性)

    python 面向对象(初级) (思维导图 ↑↑↑↑↑) 概述: 面向过程:根据业务逻辑从上到下垒代码. 函数式:将某功能代码封装至函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...

  5. python面向对象三大特性、类的约束、print带颜色输出及super补充

    面向对象三大特性.类的约束.print带颜色输出及super补充 简述: python面向对象的三大特性: 1.继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为 ...

  6. python面向对象三大特性_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  7. python面向对象三大特性6大原则_【Python学习笔记】面向对象三大特性

    ★面向对象:封装.继承和多态是面向对象的三大特点★ 面向对象编程简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为 ...

  8. python 面向对象三大特性

    面向对象三大特性:继承,多态与封装 什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为 派生类或子类.python中类的继承分 ...

  9. python面向对象-三大特性

    python面向对象编程三大特性 小结:前面我们说完了类和对象的关系,相信对类和对象的理解更加透彻..让我们一起去研究面向对象的三大特性吧.... 继承 1.什么继承? 在程序中继承就是事物之间的所属 ...

最新文章

  1. 【推导】【线段树】hdu5929 Basic Data Structure
  2. java快捷键查看目录,java取得快捷方式指向的路径
  3. C# list集合 重复元素 索引_源码分析专题10-纯手写JDK不同版本下的List接口
  4. 凯兑换系统服务器角色,能够在所有局中通用的角色,游走于各个线路,单挑很强的凯...
  5. Vue源码解析:虚拟dom比较原理
  6. 跑步(【CCF】NOI Online能力测试 入门组第二题)
  7. 运动目标跟踪(九)--Struck跟踪原理
  8. 2010.6.20 OA项目组一周工作报告
  9. 时间序列分析导论书摘:预测的一般知识
  10. poj1273:Drainage Ditches
  11. linux系统用虚拟光驱装win7,怎么用虚拟光驱安装系统
  12. linux系统安装详细教程
  13. 宜青春 信未来,用科技创新拓宽金融科技的护城河
  14. php include file_PHP Include文件实例讲解
  15. jquery.countdown 倒计时插件的学习
  16. 大家都怎么评价自己的研究生导师?
  17. Matlab axis函数
  18. Java Script 02
  19. CSU多媒体技术及应用(实验)
  20. 浅析 Kubernetes原生NetworkPolicy 网络策略,让更安全的容器运行环境唾手可得

热门文章

  1. 打印机批量扫描显示服务器超时,惠普打印机常见故障及解决方法,27年打印故障经验总结...
  2. 谷歌SEO初学者常见问题解答
  3. 嵌入式开发之STM32开发之无线控制之PT2262/2272最简单使用-带你实现一个远程控制电灯的例子
  4. 概率论与数理统计之正态分布
  5. html方法标签不起作用,Angular中innerHTML标签的样式不起作用的原因解析
  6. rtmp2flv rtmp直播转httpflv工具
  7. python中如何进行数据类型转换_python数据类型的强制转换
  8. netlogo和java,Netlogo:Shapefile与Raster
  9. hdu 4997 Biconnected
  10. TZOJ--4997: Waiting for Change (模拟)