• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python类的继承实例详解

python类的继承实例详解

作者:lqh 字体:[增加 减小] 来源:互联网

lqh 通过本文主要向大家介绍了python类详解,python开发技术详解,python os模块详解,python正则表达式详解,python 字典详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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__
</div>

此时运行的结果为

{}

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

class dog(animal):
 def run(self):
  print "dog is running..."
</div>

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

{'weight': 50, 'height': 10}
</div>

如果此时有一个类继承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__
</div>

此时的结果一样是

{}

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

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

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

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

</div>

您可能想查找下面的文章:

  • Python中异常重试的解决方案详解
  • 详解python 字符串和日期之间转换 StringAndDate
  • Python中异常重试的解决方案详解
  • 详解python 字符串和日期之间转换 StringAndDate
  • 详解Python中类的定义与使用
  • python获取指定时间差的时间实例详解
  • 详解Python中类的定义与使用
  • python获取指定时间差的时间实例详解
  • Python 类的继承实例详解
  • python 类详解及简单实例

相关文章

  • python通过BF算法实现关键词匹配的方法
  • python脚本设置超时机制系统时间的方法
  • python 从远程服务器下载东西的代码
  • Python线程指南详细介绍
  • python杀死一个线程的方法
  • Python实现的简单发送邮件脚本分享
  • Python的多态性实例分析
  • 解析Python编程中的包结构
  • Python获取单个程序CPU使用情况趋势图
  • pyqt4教程之messagebox使用示例分享

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python3基础之函数用法
    • python 实现红包随机生成算法的简单实例
    • python登录pop3邮件服务器接收邮件的方法
    • python实现根据窗口标题调用窗口的方法
    • Python实现的数据结构与算法之基本搜索详解
    • Python读取图片EXIF信息类库介绍和使用实例
    • Python语法快速入门指南
    • 用Python计算三角函数之acos()方法的使用
    • Python中使用PyHook监听鼠标和键盘事件实例
    • Python中操作mysql的pymysql模块详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有