举例讲解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模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
解决Python出现_warn_unsafe_extraction问题的方法
Mar 24 Python
Python Learning 列表的更多操作及示例代码
Aug 22 Python
python使用循环打印所有三位数水仙花数的实例
Nov 13 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
keras中的backend.clip用法
May 22 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
Python3爬虫中Ajax的用法
Jul 10 Python
python中numpy数组与list相互转换实例方法
Jan 29 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也能干大事 随机函数
2015/04/14 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
Python正则表达式常用函数总结
2017/06/24 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
综治工作汇报材料
2014/10/27 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
内勤岗位职责范本
2015/04/13 职场文书
离婚起诉书范本
2015/05/18 职场文书
北京青年观后感
2015/06/15 职场文书
交通安全主题班会
2015/08/12 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS