यदि पाइथन डेटा मॉडल की मेरी समझ सही है, तो कक्षाओं और वर्ग के दोनों उदाहरणों ने __dict__
ऑब्जेक्ट्स को संबद्ध किया है जिसमें सभी विशेषताओं को शामिल किया गया है। हालांकि, मैं थोड़ा उलझन में हूं कि क्यों कुछ वर्ग उदाहरण, उदाहरण के लिए str
के उदाहरण, __dict__
विशेषता नहीं है।पायथन: अंतर्निहित कक्षा उदाहरणों में __dict__ विशेषता क्यों नहीं है
अगर मैं एक कस्टम वर्ग बनाने के लिए:
class Foo:
def __init__(self):
self.firstname = "John"
self.lastname = "Smith"
तो मैं कह रही द्वारा उदाहरण चर प्राप्त कर सकते हैं:
>>> f = Foo()
>>> print(f.__dict__)
{'lastname': 'Smith', 'firstname': 'John'}
लेकिन अगर मैं अंतर्निहित का एक उदाहरण के साथ भी ऐसा ही करने की कोशिश str
में, मैं मिलता है:
>>> s = "abc"
>>> print(s.__dict__)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute '__dict__'
तो, क्यों str
के उदाहरण एक 0 नहीं हैविशेषता?
इस पर विस्तार से बता दें अगर हर dict एक '__dict__' था, तब वहाँ होगा __dict __.__ dict__' भी होना चाहिए - रिकर्सन कितना गहरा होना चाहिए? –