举例讲解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使用PIL模块实现给图片打水印的方法
May 22 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 Python
python字典操作实例详解
Nov 16 Python
使用python实现knn算法
Dec 20 Python
Python 计算任意两向量之间的夹角方法
Jul 05 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 Python
python 实现按对象传值
Dec 26 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
May 20 Python
Python控制鼠标键盘代码实例
Dec 08 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 array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php文档更新介绍
2011/07/22 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
js实现进度条的方法
2015/02/13 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
Python运算符重载用法实例
2015/05/28 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
《春笋》教学反思
2014/04/15 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
团代会开幕词
2015/01/28 职场文书
加班费申请报告
2015/05/15 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL