举例讲解Python面向对象编程中类的继承


Posted in Python onJune 17, 2016

python创建一个类很简单只需要定义它就可以了.

class Cat:
  pass

就像这样就可以了,通过创建子类我们可以继承他的父类(超类)的方法。这里重新写一下cat

class Cat:
  name = 'cat'


class A(Cat):
  pass

print A.name  # cat

经典类

我们也可以这样,让A多继承。

class Cat:
  name = 'cat'


class Dog:
  name = 'dog'


class A(Cat, Dog):
  pass

print A.name  # cat

如果Cat类没有name属性呢?

class Cat:
  pass

  ...
print A.name  # dog

A就会在其他的父类中找name这个属性。如果继承的两个父类都是继承自Animal类而Animal类也有name属性呢?

class Animal:
  name = 'animal'


class Cat(Animal):
  pass


class Dog(Animal):
  name = 'dog'


class A(Cat, Dog):
  pass

print A.name  # animal

这样A就不会在Dog类中找而是会在Animal上找到name, 这种类叫经典类。类的解析顺序是一种从左到右深度优先的搜索。也就是A?> Cat?> Animal ?> Dog。

新式类

python还有一种创建类的方式,就是使用新式类(建议使用), 都继承自object这个基类, 新式类的搜索规则是从左到右逐级查询。也就是A?> Cat ?> Dog ?> Animal。

class Cat(object):
  pass
Python 相关文章推荐
17个Python小技巧分享
Jan 23 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
python检索特定内容的文本文件实例
Jun 05 Python
在python中pandas读文件,有中文字符的方法
Dec 12 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
Django中信号signals的简单使用方法
Jul 04 Python
Python气泡提示与标签的实现
Apr 01 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
Django集成富文本编辑器summernote的实现步骤
May 31 Python
浅谈python为什么不需要三目运算符和switch
Jun 17 #Python
python运行时间的几种方法
Jun 17 #Python
从局部变量和全局变量开始全面解析Python中变量的作用域
Jun 16 #Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 #Python
最大K个数问题的Python版解法总结
Jun 16 #Python
Python中的多行注释文档编写风格汇总
Jun 16 #Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 #Python
You might like
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
php学习笔记 类的声明与对象实例化
2011/06/13 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
python文件的md5加密方法
2016/04/06 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
超简单使用Python换脸实例
2019/03/27 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
高级文秘工作总结的自我评价
2013/09/28 职场文书
检察官就职演讲稿
2014/01/13 职场文书
劲霸男装广告词
2014/03/21 职场文书
骨干教师考核方案
2014/05/09 职场文书
简短清晨问候语
2015/11/10 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏