举例讲解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判断windows隐藏文件的方法
Mar 21 Python
python中的闭包用法实例详解
May 05 Python
Python中的集合类型知识讲解
Aug 19 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 Python
python调用webservice接口的实现
Jul 12 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
Python打包exe时各种异常处理方案总结
May 18 Python
Python 键盘事件详解
Nov 11 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通用检测函数集合
2006/11/25 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
网站上面有这种切换效果
2006/06/26 Javascript
一页面多XMLHttpRequest对象
2007/01/22 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
python executemany的使用及注意事项
2017/03/13 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
python安装教程
2018/02/28 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
新教师工作感言
2014/02/16 职场文书
工作分析计划书
2014/04/30 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
分享提高 Python 代码的可读性的技巧
2022/03/03 Python
Javascript的promise,async和await的区别详解
2022/03/24 Javascript