手机
当前位置:查字典教程网 >脚本专栏 >python >深入浅析python继承问题
深入浅析python继承问题
摘要:有如下的代码:classp1:def__init__(self,a,b):print("initinp1")self.a1=aself.b1...

有如下的代码:

class p1: def __init__(self,a,b): print("init in p1") self.a1=a self.b1=b self.f1() def f1(self): print("f1 in p1") class c1(p1): def __init__(self,a,b,c=2): print("init in c1") p1.__init__(self,a,b) self.c1=c self.f1() def f1(self): print("f1 in p2") class c2(c1): pass c=c2(11,22) print(c.a1) print(c.b1) print(c.c1)

然后代码的运行结果如下:

F:python_codetest>python class_init.py init in c1 init in p1 f1 in p2 f1 in p2 11 22 2

关于的代码的运行过程,我有以下的疑问,我在 c1 的 __init__ 函数中会调用到p1.__init__(),然后会每次都是运行 c1.f1() 函数,没有运行 p1.f1() 的函数,在 p1 运行的 f1(),怎么也是 c1.f1()。为什么?

原因分析:

p1.__init__(self,a,b)

这行代码中的self是c1的对象。所以传给p1里面的self也就是c1的呀。

以上内容所述通过代码给大家介绍了python继承问题,希望对大家有所帮助!

【深入浅析python继承问题】相关文章:

学习python处理python编码问题

python从ftp下载数据保存实例

python海龟绘图实例教程

python实现ip查询示例

python根据距离和时长计算配速示例

有关wxpython pyqt内存占用问题分析

python实现文件名批量替换和内容替换

rhythmbox中文名乱码问题解决方法

python练习程序批量修改文件名

python实现进程间通信简单实例

精品推荐
分类导航