ใน Python 2.x มีคลาสสองสไตล์ขึ้นอยู่กับว่ามีหรือไม่มีประเภทในตัวเป็นคลาสฐาน -
"classic" style or old style classes have no built-in type as a base class: >>> class OldSpam: # no base class ... pass >>> OldSpam.__bases__ ()
"ใหม่" คลาสสไตล์:พวกเขามีประเภทที่มีอยู่แล้วภายในเป็นคลาสพื้นฐาน ซึ่งหมายความว่าไม่ว่าทางตรงหรือทางอ้อม พวกเขามีวัตถุเป็นคลาสพื้นฐาน -
>>> class NewSpam(object): # directly inherit from object ... pass >>> NewSpam.__bases__ (<type 'object'>,) >>> class IntSpam(int): # indirectly inherit from object... ... pass >>> IntSpam.__bases__ (<type 'int'>,) >>> IntSpam.__bases__[0].__bases__ # ... because int inherits from object (<type 'object'>,)
เมื่อเขียนชั้นเรียนมักจะต้องการเรียนรูปแบบใหม่เสมอ ข้อดีของการทำเช่นนั้นมีมากมาย -
รองรับคำอธิบาย โดยเฉพาะอย่างยิ่ง โครงสร้างต่อไปนี้เป็นไปได้ด้วยตัวอธิบาย -
วิธีการเรียน − เมธอดที่ได้รับคลาสเป็นอาร์กิวเมนต์โดยปริยายแทนที่จะเป็นอินสแตนซ์
วิธีคงที่ − วิธีที่ไม่ได้รับอาร์กิวเมนต์โดยปริยายเป็นอาร์กิวเมนต์แรก
คุณสมบัติพร้อมคุณสมบัติ:สร้างฟังก์ชันสำหรับจัดการการรับ การตั้งค่า และการลบแอตทริบิวต์
Python 3.x รองรับเฉพาะคลาสสไตล์ใหม่โดยปริยาย ไม่จำเป็นต้องพูดถึงคำว่า object ในวงเล็บในการประกาศคลาส