举例讲解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 相关文章推荐
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
python3实现磁盘空间监控
Jun 21 Python
python+os根据文件名自动生成文本
Mar 21 Python
Python学习笔记之自定义函数用法详解
Jun 08 Python
简单了解python的break、continue、pass
Jul 08 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
Jun 02 Python
Autopep8的使用(python自动编排工具)
Mar 02 Python
使用numpy nonzero 找出非0元素
May 14 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
了解重排与重绘
2019/05/29 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
简单谈谈python中的多进程
2016/11/06 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
python deque模块简单使用代码实例
2020/03/12 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
火山动力Java笔试题
2014/06/26 面试题
物流创业计划书
2014/02/01 职场文书
应届生求职信范文
2014/06/30 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
毕业论文致谢范文
2015/05/14 职场文书
地道战观后感400字
2015/06/04 职场文书
交通安全主题班会
2015/08/12 职场文书