मेरे पास कई विशेषताओं और विधियों के साथ एक अजगर वस्तु है। मैं ऑब्जेक्ट विशेषताओं पर पुनरावृति करना चाहता हूं।
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
अद्यतन: विशेषताओं के साथ मेरा मतलब है कि इस ऑब्जेक्ट के केवल चर, तरीके नहीं हैं।
predicate
एक कॉल करने योग्य पास के लिए वैकल्पिक तर्क का उपयोग करेंगे जो कि फ़िल्टर (बाध्य?) फ़ंक्शंस (जो विधियों से छुटकारा दिलाता है) होगा।