python 多继承
2009-09-17 14:12
274 查看
from: http://www.cnblogs.com/dahuzizyd/archive/2005/03/01/111006.html
python支持面向对象的编程风格,这里主要说说python中的多继承:
下面的代码使用python2.4,安装后使用idle的IDE开发环境(说是IDE ,比起delphi,VS.net等简单得太多了)
从File-New菜单建立一个.py文件,写下面的代码:
class SuperClass:
def sample(self):
print 'SuperClass'
class SubClass(SuperClass):
pass
sub = SubClass()
sub.sample()
要先保存,再按F5执行,在idle的主窗口显示:
>>> ================================ RESTART ================================
>>>
SuperClass
>>>
子类调用了父类的sample方法,现在修改代码,如下:
class SuperClass:
def sample(self):
print 'SuperClass'
class SuperClass1:
def sample(self):
print 'SuperClass1'
class SubClass(SuperClass,SuperClass1):
pass
sub = SubClass()
sub.sample()
运行代码,看到的结果和上面的是一样的,这里子类调用的第一个父类的sample方法,第二个父类的不被调用,
现在知道下面要说什么了吧,把SubClass类的声明改成:
class SubClass(SuperClass1,SuperClass):
pass
运行,看到的结果是SuperClass1的sample方法被调用。
>>> ================================ RESTART ================================
>>>
SuperClass1
>>>
到这里,可以看出在多继承的情况下,父类中的相同方法在子类中会调用类声明的第一个父类的方法。
python支持面向对象的编程风格,这里主要说说python中的多继承:
下面的代码使用python2.4,安装后使用idle的IDE开发环境(说是IDE ,比起delphi,VS.net等简单得太多了)
从File-New菜单建立一个.py文件,写下面的代码:
class SuperClass:
def sample(self):
print 'SuperClass'
class SubClass(SuperClass):
pass
sub = SubClass()
sub.sample()
要先保存,再按F5执行,在idle的主窗口显示:
>>> ================================ RESTART ================================
>>>
SuperClass
>>>
子类调用了父类的sample方法,现在修改代码,如下:
class SuperClass:
def sample(self):
print 'SuperClass'
class SuperClass1:
def sample(self):
print 'SuperClass1'
class SubClass(SuperClass,SuperClass1):
pass
sub = SubClass()
sub.sample()
运行代码,看到的结果和上面的是一样的,这里子类调用的第一个父类的sample方法,第二个父类的不被调用,
现在知道下面要说什么了吧,把SubClass类的声明改成:
class SubClass(SuperClass1,SuperClass):
pass
运行,看到的结果是SuperClass1的sample方法被调用。
>>> ================================ RESTART ================================
>>>
SuperClass1
>>>
到这里,可以看出在多继承的情况下,父类中的相同方法在子类中会调用类声明的第一个父类的方法。
相关文章推荐
- Python对象 继承 多态 获取对象信息 类的属性
- python_类的继承
- Python中的单继承与多继承实例分析
- python第25篇之--类的继承
- [Python进阶-4]类的继承/多态/多重继承/任意多参数
- python之面向对象之继承
- Python的继承以及调用父类成员:super用法
- Python2.7 继承networkx.DiGraph报错
- python类的继承及get和set方法的使用
- Python创建类的时候,是否继承object问题
- Python中的__init__()方法及其继承
- Python 学习笔记 - 面向对象(封装,继承和多态)
- python 多继承(新式类) 二
- python unittest 继承时出现 object has no attribute '_testMethodDoc'
- python多重继承
- python学习(6)继承
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
- 关于 python 新式类和旧式类继承顺序的验证
- python中的多继承
- Python多重继承的异构构造器