कक्षाकी कक्षा का उदाहरण कैसे संभव है, कक्षा object
का उप-वर्ग होने के बिना? यहाँ एक उदाहरण है:इंस्टेंस एक "ऑब्जेक्ट" है, लेकिन कक्षा "ऑब्जेक्ट" का उप-वर्ग नहीं है: यह कैसे संभव है?
isinstance(123, object) # True
isinstance("green cheese", object) # True
isinstance(someOldClassObject, object) # True
isinstance(someNewClassObject, object) # True
isinstance(object, object) # True
isinstance(None, object) # True
नोट इस सवाल का अनिवार्य रूप से कुछ भी नहीं old- बनाम नई शैली कक्षाओं के साथ क्या करना है:
>>> class OldStyle(): pass
>>> issubclass(OldStyle, object)
False
>>> old_style = OldStyle()
>>> isinstance(old_style, object)
True
+1: यह एक बहुत ही स्पष्ट वर्णन है, और एक बहुत अच्छा बिंदु है। धन्यवाद! – EOL
किसी को भी सोचने के लिए, 'आईइंस्टेंस' [विशेष-आधारित] है (https://github.com/python/cpython/blob/e6a0b5982973e64b9fa28e5e3e54eb8c47882780/Objects/abstract.c#L2898) पुरानी शैली के उदाहरणों और कक्षाओं के लिए (यानी 'PyClass_Check (सीएलएस) और PyInstance_Check (inst) 'सी में)। चूंकि कोई प्रकार-आधारित संबंध नहीं है, इसलिए इसे 'जारी करने वाले' चेक के लिए उदाहरण के '__class__' मिलते हैं, जो [विशेष-आधारित] भी है (https://github.com/python/cpython/blob/e6a0b5982973e64b9fa28e5e3e54eb8c47882780/Objects /classobject.c#L486) पुराने शैली के वर्गों के लिए। – eryksun