पायथन आसान dir()
फ़ंक्शन के साथ आता है जो आपके लिए कक्षा की सामग्री सूचीबद्ध करेगा। उदाहरण के लिए, इस वर्ग के लिए:कक्षा के गुणों पर पुनरावृत्ति कैसे करें, क्रम में उन्हें परिभाषित किया गया था?
class C:
i = 1
a = 'b'
dir(C)
['__doc__', '__module__', 'a', 'i']
वापसी होगी यह महान है, लेकिन ध्यान दें कि किस 'a'
और 'i'
के आदेश अब अलग तो क्रम में वे में परिभाषित किया गया है
मैं सी के गुणों को कैसे पुन: सक्रिय कर सकता हूं (संभावित रूप से अंतर्निहित दस्तावेज़ & मॉड्यूल विशेषताओं को अनदेखा कर रहा है) जिन्हें वे परिभाषित किए गए थे? उपरोक्त सी कक्षा के लिए, 'i'
होगा 'a'
।
अनुपूरक: - मैं कुछ क्रमबद्धता/लॉगिंग कोड पर काम कर रहा हूं जिसमें मैं परिभाषित क्रम में गुणों को क्रमबद्ध करना चाहता हूं ताकि आउटपुट कक्षा के समान कोड के समान होगा।
आदेश को परिभाषित करने का आदेश बिल्कुल क्यों होगा? आदेश इस मामले में अप्रासंगिक है। यदि आप इसे प्राप्त कर सकते हैं तो आप उस जानकारी का उपयोग कैसे करेंगे? –
क्या आप कक्षा के वर्ग या उदाहरणों को क्रमबद्ध कर रहे हैं? आपके उदाहरण में, 'ए' और' i' कक्षा गुण हैं। यदि आपका मतलब यह है कि उदाहरण गुण हैं, तो आपको उन्हें 'self.a =' b'' और 'self.i = 1' का उपयोग करके' __init__' में परिभाषित करना चाहिए। – PaulMcG
ये क्लास-स्तरीय विशेषताएं हैं, जो इंस्टेंस चर के रूप में उपयोगी नहीं हैं। आप कक्षा गुणों के क्रम को संरक्षित करने की कोशिश क्यों कर रहे हैं? उदाहरण चर के क्रम को संरक्षित करना बेहतर नहीं होगा?आप कक्षा-स्तर चर के साथ चाल करने की कोशिश क्यों कर रहे हैं? –