6
การเรียกคลาสผู้ปกครอง __init__ ที่มีหลายมรดกวิธีที่ถูกต้องคืออะไร?
ว่าฉันมีสถานการณ์สืบทอดหลาย: class A(object): # code for A here class B(object): # code for B here class C(A, B): def __init__(self): # What's the right code to write here to ensure # A.__init__ and B.__init__ get called? มีสองวิธีทั่วไปเพื่อเขียนเป็นC's __init__: (แบบเก่า) ParentClass.__init__(self) (ใหม่สไตล์) super(DerivedClass, self).__init__() อย่างไรก็ตามในกรณีใดกรณีหนึ่งถ้าคลาสแม่ ( AและB) ไม่ปฏิบัติตามแบบแผนเดียวกันรหัสจะทำงานไม่ถูกต้อง (บางคนอาจพลาดหรือถูกเรียกหลายครั้ง) ดังนั้นวิธีที่ถูกต้องอีกครั้งคืออะไร? มันง่ายที่จะพูดว่า …