पर पाइथन विरासत पेड़ को रिकर्सिवली चलाना मैं पाइथन में कुछ क्रमबद्धता/deserialization कोड लिख रहा हूं जो कुछ JSON से विरासत पदानुक्रम पढ़/लिखेंगे। सटीक संरचना तब तक ज्ञात नहीं होगी जब तक अनुरोध भेजा नहीं जाता है।रन-टाइम
तो, मुझे लगता है कि पाइथन वर्ग पदानुक्रम को उत्सर्जित करने के लिए और फिर, पेड़ के माध्यम से वापस रास्ते पर, सही स्थापित करने के लिए सुरुचिपूर्ण समाधान माना जाता है, सही स्थापित करें एक पायथन मूल प्रकार में मूल्य।
E.g.,
A
|
|\
| \
B C
अगर मैं अपने "आत्मनिरीक्षण" बी पर नियमित कहते हैं, यह एक dict कि उनके मूल्यों, साथ ही बी के चर और उनके मूल्यों के लिए एक के चर के सभी से एक मानचित्रण शामिल लौटना चाहिए।
जैसा कि अब यह खड़ा है, मैं B.__slots__
या B.__dict__
देख सकता हूं, लेकिन मैं केवल वहां से बी के परिवर्तनीय नाम खींच सकता हूं।
मैं केवल बी के बाद __slots__
/__dict__
कैसे प्राप्त करूं? (या सी)।
मुझे पता है कि अजगर सीधे सी की तरह कास्टिंग का समर्थन नहीं करता ++ & उसके वंश do-
हम्म, जो बताता है कि मुझे लौटाई गई सूची के सदस्यों में से एक से उछाल की आवश्यकता होगी। मुझे यकीन नहीं है कि पायथन में ऐसा कैसे करें। –
आह, मुझे लगता है कि मैं वास्तव में समझ में नहीं आया कि आप क्या खोज रहे थे। मैंने यह स्पष्ट करने का प्रयास किया कि मैंने आपके प्रश्न को एक संपादन के साथ कैसे व्याख्या किया। –
'[local_variables_of (i()) के लिए मैं टाइप (ओ)। एमआरओ() [: - 1]] 'मैं जिस समाधान के साथ आया था वह था। 'local_variables_of' चेक करता है __slots__ और __dict__ और एटीआर नामों की एक सूची देता है। –