हर क्लास एक ऑब्जेक्ट है। यह मेटाक्लास नामक किसी चीज का इंस्टेंस है। डिफ़ॉल्ट मेटाक्लास type है। आप इसे isinstance फ़ंक्शन का उपयोग करके जांच सकते हैं। उदाहरण के लिए:
class Foo:
pass
foo = Foo()
isinstance(foo, Foo)
isinstance(Foo, type)
यह आउटपुट देगा:
True True
मेटाक्लास ऑब्जेक्ट के क्लास हायरार्की का हिस्सा नहीं है जबकि बेस क्लास हैं। इन क्लास का उपयोग क्लास को इनिशियलाइज़ करने के लिए किया जाता है न कि इसके ऑब्जेक्ट को।
आप मेटाक्लास और इनहेरिटेंस के बारे में https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses/ पर बहुत अधिक गहराई से पढ़ सकते हैं।