Rainmy 发表于 2022-7-15 13:14:05

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


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


class C(A):
    def __init__(self, arg):
      super().__init__()
      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")

坏东C与缺德P 发表于 2022-7-16 16:36:40

参数arg不能传递到c和d?

baishitou 发表于 2022-7-19 23:38:12

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)

jilinnanke 发表于 2022-7-20 21:06:12

不懂

guiding 发表于 2022-7-21 11:59:25

没传参数

tengqi200 发表于 2022-7-21 12:28:45

03行会提示缺少参数"arg"

tengqi200 发表于 2022-7-21 12:33:53

所以多继承传参数是不是不能用super()?因为这样单独使用父类实例的时候会因参数不匹配而出问题

3180916196 发表于 2022-7-23 15:08:44

学习

hnxtxazyc 发表于 2022-7-23 15:38:13

想知道答案

Data# 发表于 2022-7-25 15:14:21

1

更好O 发表于 2022-7-26 10:43:14

{:10_258:}

Essilia 发表于 2022-7-26 17:17:56

{:5_108:}

soxie 发表于 2022-7-28 14:00:40

0728

牧207 发表于 2022-7-31 16:02:09

Hi

hveagle 发表于 2022-8-5 11:33:20

第三个例子(见下图),B1 和 A 处于同一侧,并且 A 和 B2 都拥有同一个父类(object),所以 (B1, A) 和 B2 处于同一级。
   ^
此处"三"改为"二"
按照 DFLR 规则,左侧优先、深度优先,所以是 B1 -> A -> B2

hveagle 发表于 2022-8-5 11:39:58

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

class B:
    def __init__(self):
      super().__init__()
      print("FishB")
      
class C(A):
    def __init__(self, arg):
      super().__init__()
      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)

hveagle 发表于 2022-8-5 11:41:42

结果:
FishB
FishD
FishA
FishC
FishE

会飞的东北人 发表于 2022-8-6 18:39:10

ok、

passio_q 发表于 2022-8-9 08:22:42

问题在哪

叶墨沫 发表于 2022-8-11 19:25:52

难道不是B类没有父类,super函数没法用了么??
页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: super() 这么优秀,官方也极力推荐,但这里面有些坑你们可能把握不住…