में ऑब्जेक्ट विशेषताओं पर Iterate मेरे पास कई विशेषताओं और विधियों के साथ एक अजगर वस्तु है। मैं ऑब्जेक्ट विशेषताओं पर पुन: प्रयास करना चाहता हूं।पायथन
class my_python_obj(object):
attr1='a'
attr2='b'
attr3='c'
def method1(self, etc, etc):
#Statements
मैं एक शब्दकोश युक्त वस्तुओं की सभी विशेषताओं और उनके वर्तमान मान उत्पन्न करना चाहते हैं, लेकिन मैं एक गतिशील रास्ते में यह करने के लिए (ताकि बाद में अगर मैं एक और विशेषता जोड़ने मैं करने के लिए याद नहीं करना चाहती मेरे फ़ंक्शन को भी अपडेट करें)।
PHP चर में कुंजी के रूप में उपयोग किया जा सकता है, लेकिन पायथन में ऑब्जेक्ट्स अनुसूचित हैं और यदि मैं इसके लिए डॉट नोटेशन का उपयोग करता हूं तो यह मेरे var के नाम से एक नई विशेषता बनाता है, जो मेरा इरादा नहीं है।
बातें स्पष्ट बस बनाने के लिए:
def to_dict(self):
'''this is what I already have'''
d={}
d["attr1"]= self.attr1
d["attr2"]= self.attr2
d["attr3"]= self.attr3
return d
·
def to_dict(self):
'''this is what I want to do'''
d={}
for v in my_python_obj.attributes:
d[v] = self.v
return d
अद्यतन: गुण मैं इस वस्तु का केवल चर, नहीं तरीकों मतलब है।
http://stackoverflow.com/questions/1251692/how- टू-एन्युमरेट-ए-ऑब्जेक्ट्स-प्रॉपर्टी-इन-पायथन कुछ मदद की हो सकती है। – sean
@sean विशेष रूप से, http://stackoverflow.com/a/1251789/4203 जाने का रास्ता है; आप कॉल करने योग्य को पार करने के लिए वैकल्पिक 'predicate' तर्क का उपयोग करेंगे जो फ़िल्टर (बाध्य?) फ़ंक्शंस को फ़िल्टर करेगा (जो विधियों से छुटकारा पाता है)। –