python新生类和经典类简单说明
2024-08-25 21:54:03
经典类:
#!/usr/bin/env python
#*-* coding:utf-8 *-*
class A():
def __init__(self):
print 'my name is GF' def test(self):
print 'this is ====A====='
class B(A):
def __init__(self):
print 'my name is BFather'
class C(A):
def __init__(self):
print 'my name is Cfather' def test(self):
print 'this is ======C======'
class D(B,C):
def __init__(self):
print 'my name is D'
t1 =D()
t1.test()
执行效果:
my name is D
this is ======A======
#继承关系,先找B,如果B没有则找A.(深度优先)
新生类:
#!/usr/bin/env python
#*-* coding:utf-8 *-*
class A(object):
def __init__(self):
print 'my name is GF' def test(self):
print 'this is ====A====='
class B(A):
def __init__(self):
print 'my name is BFather'
class C(A):
def __init__(self):
print 'my name is Cfather' def test(self):
print 'this is ======C======'
class D(B,C):
def __init__(self):
print 'my name is D'
t1 =D()
t1.test() 执行结果
my name is D
this is ======C======
#继承关系,先找B,如果B没有则找C(广度优先) 当然,class D(B,C) 这里是先执行B,在执行C的。
小结:经典类深度优先,新生类广度优先。
class A(object):
def __init__(self):
print 'my name is GF' def test(self):
print 'this is ====A====='
class B(A):
def __init__(self):
print 'my name is BFather'
class C(A):
def __init__(self):
print 'my name is Cfather' def test(self):
print 'this is ======C======'
class D(B,C):
def __init__(self):
print 'my name is D'
super(D,self).__init__()
t1 =D()
t1.test() 这里执行父类的构造函数,可以使用super方法,这也是新生类的特点。
如果使用经典类的话,那么调用父类的构造函数或者是方法,只能使用父类.方法(self)的方法
小结:新生类是支持super方式调用父类的方法。
最新文章
- bzoj4305: 数列的GCD
- 使用Idhttp.get('') 造成假死(堵塞),请问线程idhttp怎么才能做到不出错?
- ubuntu下配置SVN服务器
- 2.html5的基本格式
- Transact-SQL
- java中接口的定义与实现
- C语言的static和extern关键字
- 深入学习PE文件(转)
- A*寻路算法lua实现
- Codeforces Round #216 (Div. 2) E. Valera and Queries (BIT)
- Intel 80x86 寻址模式
- Swift中文教程(三)--流程控制
- linux的学习系列 3---目录
- mysql Explain 性能分析关键字
- hdu1054最小顶点覆盖
- 网络基础三 ARP 地址分类 NAT技术
- 一个任务:(小甲鱼python视频第29讲) 代码整理与总结
- python全栈开发 * background 定位 z-index * 180813
- Flutter进阶—点击、拖动和其他手势
- whil
热门文章
- Dubbo源码学习--优雅停机原理及在SpringBoot中遇到的问题
- 安装flutter和dart总结
- Go http handler 中间件
- BEA-290074 <;Deployment service servlet received file download request for file ";security/SerializedSystemIni.dat";. The file may exist, but download of this file is not allowed.>;
- 【IT笔试面试题整理】有序数组生成最小高度二叉树
- Golang 函数function
- 项目复审——Alpha阶段
- FFmpeg进行视频帧提取&;音频重采样-Process.waitFor()引发的阻塞超时
- Java设计模式学习记录-代理模式
- 浅析 JavaScript 链式调用