简单了解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中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
Python 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
python 多线程重启方法
Feb 18 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
Python Django的安装配置教程图文详解
Jul 17 Python
python3使用GUI统计代码量
Sep 18 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
Matplotlib配色之Colormap详解
Jan 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实现文件安全下载
2006/10/09 PHP
php结合飞信 免费天气预报短信
2009/05/07 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现提取文章摘要的方法
2015/04/21 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
鸿星尔克广告词
2014/03/21 职场文书
物流管理专业求职信
2014/05/29 职场文书
厕所文明标语
2014/06/11 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏