Python 2.x में बेस क्लास के रूप में बिल्ट-इन टाइप की उपस्थिति या अनुपस्थिति के आधार पर क्लासेस की दो स्टाइल होती हैं:
'ओल्ड स्टाइल' या "क्लासिक" स्टाइल क्लासेस: उनका कोई बिल्ट-इन टाइप बेस क्लास के रूप में नहीं होता:
>>> class OldFoo:
# कोई बेस क्लास नहीं
pass
>>> OldFoo.__bases__
()
"न्यू" स्टाइल क्लासेस: उनका बिल्ट-इन टाइप बेस क्लास के रूप में होता है, अर्थात डायरेक्टली या इनडायरेक्टली, उनका object बेस क्लास के रूप में होता है:
>>> class NewFoo(object):
# सीधे object से इनहेरिट
pass
>>> NewFoo.__bases__
(<type 'object'>,)
हालांकि Python 3.x में, केवल न्यू स्टाइल क्लासेस अनुमत हैं जिनका बिल्ट-इन टाइप बेस क्लास के रूप में होता है:
यहां क्लास डिक्लेरेशन में क्लास नाम के बाद पैरेंथेसिस में object लिखने की कोई आवश्यकता नहीं है। यहां क्लासेस object से इम्प्लिसिटली इनहेरिट करती हैं।
>>> class Foo:
# सीधे object से इनहेरिट
pass
>>> Foo.__bases__
(<type 'object'>,)