举例讲解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使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
Python3计算三角形的面积代码
Dec 18 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Python 等分切分数据及规则命名的实例代码
Aug 16 Python
Django 构建模板form表单的两种方法
Jun 14 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
Python识别处理照片中的条形码
Nov 16 Python
Python基础之元组与文件知识总结
May 19 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程序员编程注意事项
2008/04/10 PHP
php文件上传的简单实例
2013/10/19 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总
2013/07/08 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
详解webpack 多页面/入口支持&公共组件单独打包
2017/06/29 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
Python的缺点和劣势分析
2019/11/19 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
工业自动化专业自荐信范文
2014/04/10 职场文书
大学学风建设方案
2014/05/04 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
2015年营业员工作总结
2015/04/23 职场文书
离婚起诉书范本
2015/05/18 职场文书
python使用glob检索文件的操作
2021/05/20 Python