Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คลาส Python สืบทอดวัตถุอย่างไร


ใน Python 2.x มีคลาสสองสไตล์ขึ้นอยู่กับว่ามีหรือไม่มีประเภทในตัวเป็นคลาสฐาน -

คลาสสไตล์ 'Old style' หรือ "Classic":ไม่มีประเภทในตัวเป็นคลาสพื้นฐาน -

>>> class OldFoo:      # no base class
...     pass
>>> OldFoo.__bases__
()

คลาสรูปแบบ "ใหม่":พวกเขามีประเภทในตัวเป็นคลาสพื้นฐาน หมายความว่า ไม่ว่าทางตรงหรือทางอ้อม พวกเขามีวัตถุเป็นคลาสพื้นฐาน -

>>> class NewFoo(object):           # directly inherit from object
...    pass
>>> NewFoo.__bases__
(<type 'object'>,)

อย่างไรก็ตามใน Python 3.x อนุญาตให้ใช้เฉพาะคลาสสไตล์ใหม่ที่มีประเภทในตัวเป็นคลาสฐาน -

ไม่จำเป็นต้องพูดถึงอ็อบเจกต์ในวงเล็บหลังชื่อคลาสที่นี่ในการประกาศคลาส ที่นี่คลาสสืบทอดจากวัตถุโดยปริยาย

 >>> class Foo:           # directly inherit from object
...    pass
>>> Foo.__bases__
(<type 'object'>,)