Python多继承顺序实例分析
本文实例讲述了Python多继承顺序。分享给大家供大家参考,具体如下:
示例1:
#-*- coding:utf-8 -*- #!python2 class A(object): def caller(self): print 'A caller' self.called() def called(self): print 'A called' class B(object): def called(self): print 'B called' class C(B,A): pass if __name__ == '__main__': c=C() c.caller()
运行结果:
A caller
B called
示例2:
#-*- coding:utf-8 -*- #!python2 class A(object): def caller(self): print 'A caller' self.called() def called(self): print 'A called' class B(object): def called(self): print 'B called' class C(A,B): pass if __name__ == '__main__': c=C() c.caller()
运行结果:
A caller
A called
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
Python面向对象程序设计多继承和多态用法示例
本文实例讲述了Python面向对象程序设计多继承和多态用法.分享给大家供大家参考,具体如下: 多继承 就是一个子类继承多个父类: 多继承的例子,如下: # -*- coding:utf-8 -*- #! python3 class Base(object): def test(self): print("------base") class A(Base): def test1(self): print("-----test1") class B(Base): de
-
Python多继承原理与用法示例
本文实例讲述了Python多继承原理与用法.分享给大家供大家参考,具体如下: python中使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承,也叫菱形继承问题)等 MRO MRO即method resolution order,用于判断子类调用的属性来自于哪个父类.在Python2.3之前,MRO是基于深度优先算法的,自2.3开始使用C3算法,定义类时需要继承object,这样的类称为新式类,否则为旧式类 从图中可以看出,旧式类查找属性时是深度优先搜索,新式类则是广度优先搜索 C3算法
-
python多继承(钻石继承)问题和解决方法简单示例
本文实例讲述了python多继承(钻石继承)问题和解决方法.分享给大家供大家参考,具体如下: 在菱形多继承中,如果用父类.__init__()来调用父类的初始化方法,最上层会执行两次,所以遇到这种情况,python中用super.__init__()来解决这个问题. # -*- coding:utf-8 -*- #! python3 class Grand_father(object): def __init__(self): print('爷爷') class Father_left(Gran
-
在python里面运用多继承方法详解
如何在PYTHON里面运用多继承 class Father: def hobby(self): print("love to play video game.") class Mother: def cook(self): print("love to cook anything.") #比如说有两个类,如果想要一个子类同时继承这两个类,应该怎么操作呢. class Father: def hobby(self): print("love to play
-
Python类定义和类继承详解
一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象 类的私有属性: __private_attrs 两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问 在类内部的方法中使用时 self.__private_attrs 类的方法 在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,
-
Python中的单继承与多继承实例分析
本文实例讲述了Python中的单继承与多继承.分享给大家供大家参考,具体如下: 单继承 一.介绍 Python 同样支持类的继承,如果一种语言不支持继承,类就没有什么意义.派生类的定义如下所示: class DerivedClassName(BaseClassName1): <statement-1> . . . <statement-N> 需要注意圆括号中基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类
-
用实例解释Python中的继承和多态的概念
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print 'Animal is running...' 当我们需要编写Dog和Cat类时,就可以直接从Animal
-
Python类的多重继承问题深入分析
正文 首先得说明的是,Python的类分为经典类 和 新式类 经典类是python2.2之前的东西,但是在2.7还在兼容,但是在3之后的版本就只承认新式类了 新式类在python2.2之后的版本中都可以使用 经典类和新式类的区别在于: 经典类是默认没有派生自某个基类的,而新式类是默认派生自object这个基类的: 复制代码 代码如下: # old style class A():pass # new style class A(obejct):pass 2.经典类在类多重继承的时候是采用从左到右
-
Python面向对象程序设计之继承与多继承用法分析
本文实例讲述了Python面向对象程序设计之继承与多继承.分享给大家供大家参考,具体如下: 1. 继承 在C++和Java中,使用继承时,子类的构造函数会自动调用父类的构造函数,但在Python中,子类必须显式的在__init__()函数中再次调用父类中的__init__()函数.如下例: class Employee(object): def __init__(self, name, salary = 0): self.name = name self.salary = salary def
-
python继承和抽象类的实现方法
本文实例讲述了python继承和抽象类的实现方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: #!/usr/local/bin/python # Fig 9.9: fig09_09.py # Creating a class hierarchy with an abstract base class. class Employee: """Abstract base class Employee""" d
-
基于python3 类的属性、方法、封装、继承实例讲解
Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. python类与c++类相似,提供了类的封装,继承.多继承,构造函数.析构函数. 在python3中,所有类最顶层父类都是object类,与java类似,如果定义类的时候没有写出父类,则object类就是其直接父类. 类定义 类定义语法格式如下: class ClassName: <statement
-
python中子类继承父类的__init__方法实例
前言 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的 初始化 . 注意:这个名称的开始和结尾都是双下划线. 父类A class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + sel
随机推荐
- AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
- 深入理解python中函数传递参数是值传递还是引用传递
- 如何实现点击数的计算?
- jquery日历控件实现方法分享
- 浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
- Java 常见异常(Runtime Exception )详细介绍并总结
- Java调用微信客服消息实现发货通知的方法详解
- 如何将php数组或者对象传递给javascript
- 页面载入结束自动调用js函数示例
- C#实现将Doc文档转换成rtf格式的方法示例
- 深入分析C++中类的大小
- C 语言插入排序算法及实例代码
- Windows XP系统安装MySQL5.5.28图解教程
- 由php中字符offset特征造成的绕过漏洞详解
- Javascript中With语句用法实例
- 纯js实现重发验证码按钮倒数功能
- C#处理Json的另外一种方式成功实践
- Android使用文件进行数据存储的方法
- 无线局域网络简介一
- iOS视频编辑之添加音轨的方法