简单了解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 相关文章推荐
推荐11个实用Python库
Jan 23 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
Python 登录网站详解及实例
Apr 11 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
windows下python连接oracle数据库
Jun 07 Python
老生常谈Python序列化和反序列化
Jun 28 Python
python 常见字符串与函数的用法详解
Nov 23 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
如何在django中实现分页功能
Apr 22 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
浅谈Python中的继承
Jun 19 Python
Python性能测试工具Locust安装及使用
Dec 01 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
python获取本地计算机名字的方法
2015/04/29 Python
Python中operator模块的操作符使用示例总结
2016/06/28 Python
python基础之入门必看操作
2017/07/26 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python实现转圈打印矩阵
2019/03/02 Python
python matplotlib拟合直线的实现
2019/11/19 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
如何解决安装python3.6.1失败
2020/07/01 Python
python如何随机生成高强度密码
2020/08/19 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
校园标语大全
2014/06/19 职场文书
岗位职责范本大全
2015/02/26 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
超强台风观后感
2015/06/09 职场文书
趣味运动会广播稿
2015/08/19 职场文书
初中语文教师研修日志
2015/11/13 职场文书
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
python区块链持久化和命令行接口实现简版
2022/05/25 Python
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript