एक मित्र ने पिछले हफ्ते मुझसे पूछा कि किसी प्रोग्राम / फंक्शन / वगैरह के सभी वेरिएबल्स की गणना या सूची कैसे बनाई जाए। डिबगिंग के उद्देश्यों के लिए (अनिवार्य रूप से सब कुछ का एक स्नैपशॉट प्राप्त करना ताकि आप देख सकें कि चर क्या सेट हैं, या यदि वे सभी पर सेट हैं)। मैंने चारों ओर देखा और पायथन के लिए अपेक्षाकृत अच्छा तरीका पाया:
#! / usr / बिन / अजगर foo1 = "नमस्ते दुनिया" foo2 = "बार" foo3 = {"1": "ए", "2": "बी"} foo4 = "1 + 1" dir में नाम के लिए (): myvalue = eval (नाम) प्रिंट नाम, "है", प्रकार (नाम), "और बराबर है", myvalue
जो कुछ इस तरह का उत्पादन करेगा:
__builtins__ <प्रकार 'str'> है और <मॉड्यूल '__builtin__' (अंतर्निहित)> के बराबर है __doc__ <प्रकार 'str'> है और कोई भी नहीं के बराबर है __file__ <प्रकार 'str'> है और ./foo.py के बराबर है __name__ <प्रकार 'str'> है और __main__ के बराबर है foo1 <टाइप 'str'> है और हैलो वर्ल्ड के बराबर है foo2 <प्रकार 'str'> है और बार के बराबर है foo3 <टाइप 'str'> है और {'1': 'a', '2': 'b'} के बराबर है foo4 <प्रकार 'str'> है और 1 + 1 के बराबर है
मैंने अब तक PHP में एक आंशिक तरीका पाया है ( लिंक टेक्स्ट के सौजन्य से ) लेकिन यह केवल सभी चर और उनके प्रकारों को सूचीबद्ध करता है, सामग्री को नहीं:
<? php // कुछ वैरिएबल बनाएं $ बार = 'फू'; $ फू = 'बार'; // एक नई सरणी ऑब्जेक्ट बनाएँ $ arrayObj = new ArrayObject (get_defined_vars ()); // सरणी ऑब्जेक्ट पर लूप और चर और मूल्यों को प्रतिध्वनित करें के लिए ($ पुनरावृत्ति = $ arrayObj-> getIterator (); $ iterator-> मान्य) (; $ iterator-> अगला () { इको $ इटरेटर-> की ()। '=>'। $ पुनरावृत्ति-> वर्तमान ()। '<br />'; } ?>
इसलिए मैंने इसे आपके सामने रखा: आप अपनी पसंदीदा भाषा में सभी चर और उनकी सामग्री को कैसे सूचीबद्ध करते हैं?
VonC द्वारा संपादित करें : मैं प्रस्तावित करता हूं कि यह प्रश्न थोड़ा " कोड-चैलेंज " की भावना का अनुसरण करता है ।
यदि आप सहमत नहीं हैं, तो बस टैग और लिंक को संपादित करें और निकालें।