简单了解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使用win32com在百度空间插入html元素示例
Feb 20 Python
Python中的map()函数和reduce()函数的用法
Apr 27 Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
Python实现的快速排序算法详解
Aug 01 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
Python批量发送post请求的实现代码
May 05 Python
Django的Modelforms用法简介
Jul 27 Python
Python turtle绘画象棋棋盘
Aug 21 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
Jul 02 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
Sep 16 Python
python如何快速拼接字符串
Oct 28 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
Jan 09 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 数组遍历顺序理解
2009/09/09 PHP
PHP面向对象分析设计的61条军规小结
2010/07/17 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
PHP如何使用Memcached
2016/04/05 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
Angular实现form自动布局
2016/01/28 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
js变量提升深入理解
2016/09/16 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
在Django的视图中使用数据库查询的方法
2015/07/16 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
Python类的继承用法示例
2019/01/31 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
浅谈Python中的模块
2020/06/10 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
党风廉政承诺书
2014/03/27 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书