miki_andy 发表于 2025-3-21 17:37:29

是因为B类里面带了super吗,因为B是mro顺序的最后一个,带了反而有问题

jeremy1101 发表于 2025-3-22 21:06:03

感觉挺绕的,需要有更复杂的例子来看

让等待充实 发表于 2025-4-4 15:15:00

来看看

LEEFEI571 发表于 2025-4-6 15:05:09

学习

张伯谦 发表于 2025-4-13 18:07:20

1

AK_layne 发表于 2025-4-17 10:35:53

无条件支持楼主

DaggerRoo 发表于 2025-4-27 12:31:23

我猜是因为 调用super.__init__()时省略的参数需要与def __init__()内的参数相同,但是在C继承A的过程中,A定义的__init__()参数只有self,而C传递进去的有self和arg两个参数,导致参数过多报错。

anthonywu1992 发表于 2025-4-29 11:15:11

所以问题在于?

wu55500 发表于 2025-4-30 10:18:07

B-D-A-C-E

masterjian 发表于 2025-5-5 14:21:06

{:9_229:}

xl1123456789 发表于 2025-5-8 12:21:45

class A

Gyoushinn 发表于 2025-5-9 11:14:38

c把arg参数传给a,但是a收不到,没法传给下一个D

曾德华 发表于 2025-5-11 17:31:31

111

柴胡猫 发表于 2025-5-12 15:59:33

不知道呜呜呜呜呜{:9_234:}

2053793150 发表于 2025-5-16 17:14:54

好好

Edmound 发表于 2025-5-17 00:53:20

O中不存在方法__init__,但两条路径都最终指向O,两条路径无法返回吧

Edmound 发表于 2025-5-17 00:54:40

Edmound 发表于 2025-5-17 00:53
O中不存在方法__init__,但两条路径都最终指向O,两条路径无法返回吧

好吧,只是A中不存在arg参数

kekepet 发表于 2025-5-17 15:57:39

查看隐藏

阿归 发表于 2025-5-30 00:55:56

本帖最后由 阿归 于 2025-5-30 01:23 编辑

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)

Tshirt 发表于 5 天前

构造函数有些没有参数
页: 21 22 23 24 25 26 27 28 29 30 [31] 32
查看完整版本: super() 这么优秀,官方也极力推荐,但这里面有些坑你们可能把握不住…