举例讲解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 相关文章推荐
python实现代码行数统计示例分享
Feb 10 Python
零基础写python爬虫之抓取百度贴吧代码分享
Nov 06 Python
详解Python中break语句的用法
May 14 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
Oct 09 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 Python
自定义Django默认的sitemap站点地图样式
Mar 04 Python
django-csrf使用和禁用方式
Mar 13 Python
Python代码执行时间测量模块timeit用法解析
Jul 01 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
Python常用数据分析模块原理解析
Jul 20 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
第十一节--重载
2006/11/16 PHP
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
用javascript实现画板的代码
2007/09/05 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
Django CBV类的用法详解
2019/07/26 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
函授毕业生的自我鉴定
2013/11/26 职场文书
个人培训自我鉴定
2014/03/28 职场文书
医院信息公开实施方案
2014/05/09 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
好听的队名和口号
2014/06/09 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
保卫工作个人总结
2015/03/03 职场文书
七年级作文之秋游
2019/10/21 职场文书
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫