简单了解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根据距离和时长计算配速示例
Feb 16 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
Python创建对称矩阵的方法示例【基于numpy模块】
Oct 12 Python
Python并发编程协程(Coroutine)之Gevent详解
Dec 27 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
Django权限机制实现代码详解
Feb 05 Python
Python 离线工作环境搭建的方法步骤
Jul 29 Python
Pytorch实现神经网络的分类方式
Jan 08 Python
在python中修改.properties文件的操作
Apr 08 Python
基于python 取余问题(%)详解
Jun 03 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
Python自然语言处理之切分算法详解
Apr 25 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
浅谈js中的this问题
2017/08/31 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
对python函数签名的方法详解
2019/01/22 Python
Python中整数的缓存机制讲解
2019/02/16 Python
python中删除某个元素的方法解析
2019/11/05 Python
使用python实现画AR模型时序图
2019/11/20 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
python实现双色球随机选号
2020/01/01 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
品质主管岗位职责
2014/03/16 职场文书
开门红主持词
2014/04/02 职场文书
代理人委托书
2014/09/16 职场文书
2015元旦节寄语
2014/12/08 职场文书
世界气象日活动总结
2015/02/27 职场文书
通讯稿格式及范文
2015/07/22 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL