举例讲解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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
浅谈python函数之作用域(python3.5)
Oct 27 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
python编写计算器功能
Oct 25 Python
python selenium循环登陆网站的实现
Nov 04 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
查看端口并杀进程python脚本代码
Dec 17 Python
django 链接多个数据库 并使用原生sql实现
Mar 28 Python
keras中的backend.clip用法
May 22 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
Aug 17 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
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
Laravel中注册Facades的步骤详解
2016/03/16 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
python中函数传参详解
2016/07/03 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
几个SQL的面试题
2014/03/08 面试题
计算机专业推荐信范文
2013/11/20 职场文书
大一期末自我鉴定
2013/12/13 职场文书
学生会个人自荐书范文
2014/02/12 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
单位绩效考核方案
2014/05/11 职场文书
安全宣传标语口号
2014/06/06 职场文书
社区灵活就业证明
2014/11/03 职场文书
2014年度工作总结报告
2014/12/15 职场文书
职工年度考核评语
2014/12/31 职场文书
Python面向对象之成员相关知识总结
2021/06/24 Python
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技