简单了解Python多态与属性运行原理


Posted in Python onJune 15, 2020

1.多态是指传入不同的对象,产生不同的结果

多态指的是一类事物有多种形态(一个抽象类有多个子类,因而多态的概念依赖于继承)

定义:多态是一种使用对象的方法,子类重写父类方法,调用不同子类对象的父类方法,可以产生不同的执行结果

好处:调用灵活,有了多态,更容易编写出通用的代码。

代码展示:

class Dog(object):
  def work(self):
    print('指哪打哪')

class ArmyDog(Dog):
  def work(self):
    print('追击敌人')
class DrugDog(Dog):
  def work(self):
    print('追查毒品')

class Person(object):
  def work_with_dog(self, dog):
    dog.work()
ad = ArmyDog()
dd = DrugDog()
daqiu = Person()
daqiu.work_with_dog(ad)
daqiu.work_with_dog(dd)

2.类属性就是类对象所拥有的属性,它被该类的所有实例对象所共有

类属性可以使用类对象或实例对象访问。

例如:

class Dog(object):
  tooth = 10
wangcai = Dog()
xiaohei = Dog()
print(Dog.tooth)
print(wangcai.tooth)
print(xiaohei.tooth)

得出的结果都为:10

记录的某项数据始终保持一致时,定义类属性

实例属性要求每个对象为其单独开辟一份内存空间来记录数据,而类属性为全类所共有,仅占用一份内存,更加节省内存空间。

3.修改类属性

类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是创建了一个实例属性

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python数据结构之二叉树的建立实例
Apr 29 Python
python下MySQLdb用法实例分析
Jun 08 Python
详解Python字符串对象的实现
Dec 24 Python
Python 中的with关键字使用详解
Sep 11 Python
python实现微信接口(itchat)详细介绍
Oct 23 Python
Python实现自动发送邮件功能
Mar 02 Python
tensorflow建立一个简单的神经网络的方法
Feb 10 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
python实现双色球随机选号
Jan 01 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
Python类super()及私有属性原理解析
Jun 15 #Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 #Python
Python StringIO及BytesIO包使用方法解析
Jun 15 #Python
Python smtp邮件发送模块用法教程
Jun 15 #Python
pandas数据处理之绘图的实现
Jun 15 #Python
keras中的loss、optimizer、metrics用法
Jun 15 #Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 #Python
You might like
php生成带logo二维码方法小结
2016/04/08 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
举例讲解Python中的算数运算符的用法
2015/05/13 Python
python发送邮件脚本
2018/05/22 Python
实用自动化运维Python脚本分享
2018/06/04 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
企业管理专业个人求职信范文
2013/09/24 职场文书
公司财务自我评价分享
2013/12/17 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
运动会解说词200字
2014/02/06 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
运动会加油稿100字
2014/09/19 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
开场白怎么写
2015/06/01 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
Python字符串格式化方式
2022/04/07 Python