python类的继承实例详解


Posted in Python onMarch 30, 2017

python 类的继承

对于许多文章讲解python类的继承,大多数都是说一些什么oop,多态等概念,我认为这样可能对有一定基础的开发者帮助不是那么大,不如直接用在各种情况下所写的代码,来展示对于某一种代码情况,代码运行会有什么效果。这样可能对开发者的帮助更大。不说废话,直接上代码。

这里不区分经典类和新式类,下面分析的对新式类和经典类都适用

对于类中的__init__函数,只是一个初始化是调用的一个函数(ps:初始化和创建实例并不是一个过程,实例的创建是通过一个create函数来完成的),如果在子类中没有显示的声明__init__函数,则子类就会调用父类的__init__函数,但是不会再调用父类的父类中的__init__函数,如果显示的声明了__init__ 函数,则在子类的初始化的时候就不会调用父类的初始化函数,只会调用子类中声明的__init__函数, 同时在子类实例中也不会有父类__init__函数中声明的属性,

例子:

class animal():
 name="hh"
 sex="man"
 def __init__(self):
  self.height=10
  self.weight=50
 def deception(self):
  print "ansible.height:"+self.height+" animal.weight:"+self.weight
 def run(self):
  print "animal is running...."
class dog(animal):
 def __init__(self):
  pass
if __name__=="__main__":
 dg=dog()
 print dg.__dict__

此时运行的结果为

{}

当把dog类修改为如下时(ps:此时没有显示的声明__init__方法):

class dog(animal):
 def run(self):
  print "dog is running..."

此时由于直接调用的父类animal的__init__方法,结果如下:

{'weight': 50, 'height': 10}

如果此时有一个类继承dog类,此时会出现什么情况呢?(python解释器先在子类中寻找__init__方法,如果没有找到,再从父类中找,直到找到为止,并运行,并且不再运行父类的父类的__init__方法,此时没有运行的__init__方法中的创建的属性是没有的,例如上面的例子,第一次运行时得到的例子中并没有weight和height属性)

class animal():
 name="hh"
 sex=""
 def __init__(self):
  self.height=10
  self.weight=50
 def deception(self):
  print "ansible.height:"+self.height+" animal.weight:"+self.weight
 def run(self):
  print "animal is running...."
class dog(animal):
 def __init__(self):
  pass
 def run(self):
  print "dog is running..."
class jinmao(dog):
 # def __init__(self):
 #  self.ji="jinmao"
 pass
if __name__=="__main__":
 dg=jinmao()
 print dg.__dict__

此时的结果一样是

{}

在类的多继承中会产生什么状况呢?(在多继承中会运行类的继承参数中的第一个参数声明的父类中的__init__函数,如果父类中没有__init__函数,继续寻找父类的父类中有没有,以此类推。。。如果找到了头还是没有,则换为第二个参数声明的父类,过程如第一个参数,知道找到__init__函数为止,如果都没有找到,则不初始化),代码可以根据前面例子自己测试。

对于在子类中调用父类中的方法的super的使用与特性。

总结:如果想了解python虚拟机具体是怎么创建类的(具体到当加载一个.pyc文件时,是怎么通过c语言的代码逻辑来把类对象放到一块内存中的,我也在了解这方面的内容,希望咱们一块探索)

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
为Python的web框架编写MVC配置来使其运行的教程
Apr 30 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
python解决Fedora解压zip时中文乱码的方法
Sep 18 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
python实现搜索文本文件内容脚本
Jun 22 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
用Python写一个自动木马程序
Sep 17 Python
详解Python3定时器任务代码
Sep 23 Python
python如何调用java类
Jul 05 Python
基于python实现操作git过程代码解析
Jul 27 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 #Python
python下读取公私钥做加解密实例详解
Mar 29 #Python
django开发之settings.py中变量的全局引用详解
Mar 29 #Python
深入理解Python3中的http.client模块
Mar 29 #Python
Python 中迭代器与生成器实例详解
Mar 29 #Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 #Python
windows系统下Python环境搭建教程
Mar 28 #Python
You might like
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
MSN消息提示类
2006/09/05 Javascript
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
JavaScript插入动态样式实现代码
2012/02/22 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
Python中IPYTHON入门实例
2015/05/11 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
Python处理文本换行符实例代码
2018/02/03 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
护士自我鉴定范文
2013/10/06 职场文书
入党申请书自我鉴定
2013/10/12 职场文书
精细化工应届生求职信
2013/11/17 职场文书
美德少年事迹材料
2014/01/23 职场文书
小学生家长寄语
2014/04/02 职场文书
车辆年检委托书范本
2014/10/14 职场文书
小学教师自我评价
2015/03/04 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
2015年教师节广播稿
2015/08/19 职场文书
诉讼和解协议书
2016/03/23 职场文书