一锅兔子 发表于 2022-1-8 21:57:42

super真是让人头大,这段代码结果怎么会是AAB

class A:
    def __init__(self):
      print('A')

class B(A):
    def m (self):
      super().__init__()
      print('B')
b=B()
b.m()

傻眼貓咪 发表于 2022-1-8 22:11:33

class A:
    def __init__(self):
      print('A')

class B(A):
    def __init__(self): # 这里?
      super().__init__()
      print('B')
b = B()

一锅兔子 发表于 2022-1-8 22:20:45

傻眼貓咪 发表于 2022-1-8 22:11


为啥我的代码运行结果是AAB,你这是AB

大马强 发表于 2022-1-8 22:22:33

B是继承A的,所以B有和A一样的
def __init__(self):
      print('A')
b=B()
就执行一次A的__init__()方法,打印一个A
B的m方法又调用了A的__init__(),打印第二个A
print('B'),最后打印一个B
所以结果是AAB
页: [1]
查看完整版本: super真是让人头大,这段代码结果怎么会是AAB