मुझे यह समस्या थोड़ी सी GUI lib लिख रही है जो कक्षाओं को सरल तालिका दृश्यों में मैप करती है। एक निश्चित प्रकार = कॉलम के प्रत्येक वर्ग सदस्य, और कॉलम का क्रम महत्वपूर्ण है। लेकिन ...उनकी घोषणा के क्रम में वर्ग सदस्यों के माध्यम से Iterate
class Person(object):
name = None
date_of_birth = None
nationality = None
gender = None
address = None
comment = None
for member in Person.__dict__.iteritems():
if not member[1]:
print member[0]
उत्पादन:
comment
date_of_birth
name
address
gender
nationality
...
ओह, ओडर सभी को मिलाया गया ... वांछित आउटपुट:
name
date_of_birth
nationality
gender
address
comment
वहाँ बनाए रखने के बिना यह करने के लिए एक रास्ता है कॉलम के अतिरिक्त OrderedDict()
?
एक नियम परिभाषा द्वारा असामान्य है, इसलिए आप वर्ग विशेषताओं के किसी ऑर्डरिंग पर भरोसा नहीं कर सकते हैं और आपको कहीं और ऑर्डर करना होगा। –
बस एक विचार, थोड़ा बुरा लेकिन क्या आदेश दिया गया आदेश के लिए '__dict__' को स्वैप करना संभव होगा? ऑर्डर को कहीं और बनाए रखने के लिए अभी भी बेहतर हो सकता है, लेकिन – GP89
@MartijnPieters को सच नहीं देखना अच्छा हो सकता है, आप इसे मेटाक्लास के माध्यम से कर सकते हैं। वास्तव में उपयोग-मामले का स्पष्ट रूप से पायथन 3.x मेटाक्लास पीईपी (3115) और ऑर्डर्ड डिक्ट पीईपी (372) दोनों में उल्लेख किया गया है। –