डीफ़ एफ (एस) प्रिंट & lt; s का नाम & gt; = S
मैं f (हैलो)
के लिए "नमस्ते = 10" आउटपुट करना चाहता हूं, यह देखते हुए कि चर हैलो का मान 10 है।
समस्या यह है कि चर की वैरिएबल नाम कैसे प्राप्त करें, यानी, & lt; s का नाम;
?
यह डिबगिंग उद्देश्य के लिए है नए कथन से पहले s = 0
प्रिंट करें एक नया स्टेटमेंट दें s = 2
f (s)
s
शुरू में 0, f (s)
नया स्टेटमेंट प्रिंट करने के बाद s = 2
।
मैं आसानी से लिखते हैं:
def f (name, value) प्रिंट "% s =% s"% (name, str (value))
और उसका उपयोग करें f ("s", s)
के रूप में, लेकिन मुझे दो तर्कों को इनपुट करने की आवश्यकता होगी, जो अधिक जटिल है।
मुझे यकीन नहीं है कि यह वास्तव में इसके लायक है, लेकिन फ्लेम से जानकारी का प्रयोग करके आप स्थितिगत तर्कों के साथ सरल फ़ंक्शन कॉल कर सकते हैं, तो आप ऐसा कुछ कर सकते हैं:
< कोड> आयात डेफ हैलो (एस 1, एस 2, एस 3, एस 4) का निरीक्षण करें: आर्ग्स = इंस्पेक्टर.टार्ट्सपीक (हैलो) .args line = inspect.getouterframes (inspect.currentframe ()) [1] [4] [0] actual_args = नक्शा (Str.strip, line [line.index ('(') + 1: line.index (')')]। विभाजन (',')) एक्स के लिए, ज़िप में y (args, actual_args): प्रिंट "मान का { } {} "है। प्रारूप (y, स्थानीय () [x]) a, b, c, d = 1, 2, 3, 4 नमस्कार (a, b, c, d)
आउटपुट:
a का मान b का 1 मान है c का 2 मान 3 है d का मान 4
Comments
Post a Comment