ike20180307 发表于 2023-9-25 21:17:09

class A:
    def __init__(self, arg):
      super().__init__(arg)
      print("FishA")

      
class B:
    def __init__(self):
      super().__init__()
      print("FishB")
      

class C(A):
    def __init__(self, arg):
      super().__init__(arg)
      print("FishC")


class D(B):
    def __init__(self, arg):
      super().__init__()
      print("FishD")


class E(C, D):
    def __init__(self, arg):
      super().__init__(arg)
      print("FishE")


e = E(520)
FishB
FishD
FishA
FishC
FishE

RichardYang 发表于 2023-9-25 21:54:45

回复。

保尔·柯察恒 发表于 2023-9-27 14:27:46

继续学习

保尔·柯察恒 发表于 2023-9-27 14:28:01

继续学习

FYEY 发表于 2023-9-27 16:50:16

1

十号的猫 发表于 2023-9-28 10:41:17

1

ftdzzh 发表于 2023-9-28 11:40:39

学习

雪之下路漫漫 发表于 2023-9-30 18:01:30

学习

DancedFive 发表于 2023-10-2 16:39:49

CD类里没有定义参数arg

Snxsky 发表于 2023-10-3 09:36:15

11

Rachel01 发表于 2023-10-4 12:16:53

no

FRDX 发表于 2023-10-4 15:12:31

o

maniac-Joker 发表于 2023-10-9 08:32:44

类E继承MRO顺序为C A D B,类E的构造函数含有arg参数,而类A则不含参数arg

鑫xx 发表于 2023-10-10 22:57:28

0

Lionsstars 发表于 2023-10-12 12:50:20

我看看结果

17855461143 发表于 2023-10-13 19:43:51

520 在A和B中用不上,所以报错
个人觉得使用super()函数需要保证参数相同

朱鸣轩 发表于 2023-10-14 16:45:49

A 中间不应有super.__init__()

刘jcccccc 发表于 2023-10-15 00:46:58

没有头

monkey1024 发表于 2023-10-16 10:42:02

1

Vivivvvi 发表于 2023-10-17 23:30:00

D中缺少参数
页: 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28
查看完整版本: super() 这么优秀,官方也极力推荐,但这里面有些坑你们可能把握不住…