humblef1sh 发表于 2026-3-21 20:29:42

A到D的过程没有给出arg参数

点击输入文本 发表于 2026-3-29 10:15:03

1

铭记太阳 发表于 2026-4-3 10:11:21

E(520)
传入super
顺序是BDACE
后面不知道为什么会报错了

铭记太阳 发表于 2026-4-3 10:13:05

现在知道了,ECADB,CA过程中已经把arg舍弃掉了,然后D又要arg,所以才会报错

kotorikawai 发表于 2026-4-23 16:35:25

按照mro顺序: E -> C -> A -> D -> B -> object, 在代码进行到 C 的构造函数时, super()指向的是 A , 因为 A 的构造函数不带参数, 参数arg没有被带到 A 中, 继续按照mro顺序, super()指向的是 D , 但是因为 D 的构造函数带参数arg, 此时 A 没有携带 arg, 所以产生了报错.

3352925169 发表于 2026-4-29 16:02:57

A和B里面不需要写super()

elei 发表于 2026-5-8 22:54:19


屿川 发表于 2026-5-10 15:02:36

A没有参数给D

wtchou 发表于 2026-5-21 23:52:31

{:10_249:}

suodazheng 发表于 2026-5-26 15:25:16

1

ruoyu0305 发表于 2026-5-26 21:06:20

不知道

man123 发表于 2026-5-27 15:10:35

继承顺序为BDACE,C需要传参,但A没有

wtyy 发表于 2026-6-4 12:28:14

1

极品路人甲 发表于 2026-6-4 13:39:45

1

AkaMi_re 发表于 2026-6-6 16:19:55

gfh

风吹起的光与尘 发表于 2026-6-7 16:03:16

问题在于按照mro顺序,B后面没有任何类,所以报错了

J江米小枣 发表于 2026-6-7 18:22:03

学习了

希望不要秃头 发表于 2026-6-12 15:57:34

D缺少输入参数arg

wuzhijin 发表于 2026-6-14 18:10:24

类c和类D没有定义self.arg = arg

klyhyyk 发表于 2026-6-15 15:55:19

学习
页: 27 28 29 30 31 32 33 34 35 36 [37] 38
查看完整版本: super() 这么优秀,官方也极力推荐,但这里面有些坑你们可能把握不住…