Method Resolution Order (MRO) ในคลาสรูปแบบใหม่?
ในหนังสือPython in a Nutshell (2nd Edition)มีตัวอย่างที่ใช้ คลาสแบบเก่าเพื่อสาธิตวิธีการแก้ไขตามลำดับความละเอียดแบบคลาสสิกและ แตกต่างอย่างไรกับลำดับใหม่ ฉันลองใช้ตัวอย่างเดียวกันนี้โดยเขียนตัวอย่างใหม่ในรูปแบบใหม่ แต่ผลลัพธ์ก็ไม่ต่างจากที่ได้จากคลาสแบบเก่า เวอร์ชัน python ที่ฉันใช้เพื่อเรียกใช้ตัวอย่างคือ2.5.2 ด้านล่างนี้คือตัวอย่าง: class Base1(object): def amethod(self): print "Base1" class Base2(Base1): pass class Base3(object): def amethod(self): print "Base3" class Derived(Base2,Base3): pass instance = Derived() instance.amethod() print Derived.__mro__ การโทรinstance.amethod()พิมพ์ออกBase1มา แต่ตามความเข้าใจของฉันเกี่ยวกับ MRO ที่มีรูปแบบคลาสใหม่ผลลัพธ์ควรจะเป็นBase3กับรูปแบบใหม่ของการเรียนการส่งออกควรจะได้รับ การโทรDerived.__mro__พิมพ์: (<class '__main__.Derived'>, <class '__main__.Base2'>, <class '__main__.Base1'>, <class …