关于python 继承
本文介绍了关于python 继承的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
有如下的代码:
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_code\test>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 继承的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文