简单了解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生成文件md5校验值函数的方法
Jan 10 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
Python callable()函数用法实例分析
Mar 17 Python
python模块smtplib实现纯文本邮件发送功能
May 22 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
PyTorch的深度学习入门教程之构建神经网络
Jun 27 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
Django 构建模板form表单的两种方法
Jun 14 Python
Python计算信息熵实例
Jun 18 Python
Python grequests模块使用场景及代码实例
Aug 10 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+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
js window.onload 加载多个函数的方法
2009/11/02 Javascript
IE和Firefox下event事件杂谈
2009/12/18 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
详解Python的单元测试
2015/04/28 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
电大自我鉴定范文
2013/10/01 职场文书
大家访活动实施方案
2014/03/10 职场文书
银行求职自荐书
2014/06/25 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
会议邀请函
2015/01/30 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
员工加薪申请报告
2015/05/15 职场文书
大学生十八大感想
2015/08/11 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python