gpt4 book ai didi

深入浅析python继承问题

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章深入浅析python继承问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

有如下的代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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)

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

?
1
2
3
4
5
6
7
8
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继承问题,希望对大家有所帮助! 。

最后此篇关于深入浅析python继承问题的文章就讲到这里了,如果你想了解更多关于深入浅析python继承问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com