小绿c 发表于 2023-2-2 21:28:09

ghjk

sherry.she 发表于 2023-2-3 14:09:34

答案

isdkz 发表于 2023-2-5 01:15:48

学习学习

Xianjing. 发表于 2023-2-6 10:51:28

1

狠人呀 发表于 2023-2-6 21:26:16

{:5_94:}

Conceiver 发表于 2023-2-8 12:53:47

CalvinLin 发表于 2023-2-8 13:50:52

是因为super继承的时候构造函数的参数要一致,不然会混淆???

Macsen 发表于 2023-2-11 11:27:06

救命!!!

JesseGu 发表于 2023-2-11 14:46:31

有问题?

wanglyndon 发表于 2023-2-13 18:50:54

?

影中人 发表于 2023-2-14 00:14:59

老师,你的调用未绑定父类的方法里的这一段好像有点问题
class A:
    def say(self):
      print("FishA")

class B:
    def say(self):
      print("FishB")
      
class C(A):
    def say(self):
      A.say(self)
      print("FishC")
      
class D(B):
    def say(self):
      B.say(self)
      print("FishD")

class E(C, D):
    def say(self):
      D.say(self)
      C.say(self)
      print("FishE")

e = E()
e.say()
这一段输出的结果应该是
“FishB
FishD
FishA
FishC
FishE”

Yuuu渔舟唱晚 发表于 2023-2-14 15:15:15

arg

阿伟同学 发表于 2023-2-15 22:17:26

由A传导到D后缺少实参arg

surfr 发表于 2023-2-16 06:58:28

答案

咔叽小飞鼠 发表于 2023-2-16 15:54:12

E(520)爱的太深

意阑珊 发表于 2023-2-17 00:20:09

本帖最后由 意阑珊 于 2023-2-17 00:40 编辑

D需要参数arg 但A未传递给D (通过__init__()括号中的符号来传递)同时C也未传递给A参数,此时可以将A C中的参数arg补上 也可以将D中的,arg删掉

yk272424127 发表于 2023-2-17 18:08:59

根据MRO顺序
[<class '__main__.E'>, <class '__main__.C'>, <class '__main__.A'>, <class '__main__.D'>, <class '__main__.B'>, <class 'object'>]
属性arg传入C中,但C没能传入A,A也无法传给D,但D则需要一个arg属性

deep-cy 发表于 2023-2-21 10:47:58

1

小乌龟1 发表于 2023-2-21 15:31:22

1

啊啊小姐姐 发表于 2023-2-21 15:54:02

6
页: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18
查看完整版本: super() 这么优秀,官方也极力推荐,但这里面有些坑你们可能把握不住…