Python:在多重继承中呼叫多个init
发布时间:2020-12-17 17:37:36 所属栏目:Python 来源:网络整理
导读:我有2个类:A(需要1个参数进行初始化)和B(需要2个参数进行初始化),以及第三个类C,它从A和B派生. class A: def __init__(self,sval): print("A: rcd value: ",sval) self.aval = svalclass B: def __init__(self,sval,tval): print("B: rcd 2 values: ",tval)
我有2个类:A(需要1个参数进行初始化)和B(需要2个参数进行初始化),以及第三个类C,它从A和B派生.
当我运行上述代码时,最后一行有错误;调用类A的__init__,而不调用类B的__init__.
如何从C类的__init__调用A和B的__init__函数? 编辑:我在Debian Linux上使用Python 3.5.3,尽管我更喜欢在Python2和Python3上都能使用的解决方案. 最佳答案
假设您拥有对A和B的控制权,并且可以避免在两者中使用相同的属性名称.然后,为了正确使用super,请按以下方式定义它们.
然后C .__ init__只需要调用一次super:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |