简单了解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 实现堆排序算法代码
Jun 05 Python
python模拟登陆Tom邮箱示例分享
Jan 13 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 Python
Python参数类型以及常见的坑详解
Jul 08 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
解决jupyter运行pyqt代码内核重启的问题
Apr 16 Python
django rest framework serializers序列化实例
May 13 Python
python删除某个目录文件夹的方法
May 26 Python
Django实现后台上传并显示图片功能
May 29 Python
结束运行python的方法
Jun 16 Python
python matplotlib库的基本使用
Sep 23 Python
python自动化之如何利用allure生成测试报告
May 02 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
基于mysql的bbs设计(三)
2006/10/09 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
python的urllib模块显示下载进度示例
2014/01/17 Python
Python实现定时任务
2017/02/08 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
Python unittest框架操作实例解析
2020/04/13 Python
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
学习标兵获奖感言
2014/02/20 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
台风停课通知
2015/04/24 职场文书
致青春观后感
2015/06/09 职场文书
开学第一周值周总结
2015/07/16 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python