2014-07-17 12 views
6

में स्थानीय वैरिएबल देखना मैं पाइथन के लिए नया हूं और स्पाइडर के आईडीई का उपयोग कर रहा हूं। एक विशेषता मैं इसके बारे में सराहना करता हूं यह चर परिवर्तक है। हालांकि, कुछ शोधों के आधार पर, मैंने पाया कि यह केवल वैश्विक चर दिखाता है।)स्पाइडर के वेरिएबल एक्सप्लोरर

import inspect 

local_vars = {} 

def main(): 
    global local_vars 
    a = 2 
    b = 4 
    c = a+b 
    local_vars = inspect.currentframe().f_locals 
    return c 

main() 

यह अच्छी तरह से काम करता है, फिर भी, मैं अन्य कार्यों है कि मुख्य भीतर से कहा जाता है (है और मैं में वे चर देखना चाहते हैं: एक वैकल्पिक हल है कि मैं उस के लिए पाया निरीक्षण मॉड्यूल का उपयोग करना है परिवर्तनीय एक्सप्लोरर भी। मैंने मुख्य समारोह में चर के लिए क्या किया था और निर्देश नहीं दिया। मैंने देखा कि जब मैं स्पाइडर के परिवर्तनीय एक्सप्लोरर विकल्पों में "असमर्थित डेटा प्रकारों को बाहर करने" के लिए सेटिंग अक्षम करता हूं, तो दूसरा नियम सही आकार विशेषता के साथ प्रकट होता है, हालांकि, मैं इसे खोलने/देखने में असमर्थ हूं। एक संभावित काम पर किसी भी विचार के आसपास? बीटीडब्लू पोस्ट करने वाला यह मेरा पहला समय है।

धन्यवाद !!


यहां मेरे मुद्दे का एक कामकाजी उदाहरण है और मैंने इसे पिलैब सबप्लॉट पर खोज लिया है।

import inspect, pylab 

mainVars = {} 

def main(): 
    global mainVars 

    a = 1 
    b = 2 

    fig = pylab.figure() 
    subPlot = fig.add_subplot(211) ## line of interest 

    pylab.close('all') 

    mainVars = inspect.currentframe().f_locals 

main() 

जब ब्याज की रेखा पर टिप्पणी की जाती है, तो निर्देश सफलतापूर्वक बनाया जाता है और देखा जा सकता है। ऐसा प्रतीत होता है कि fig.add_subplot() का उपयोग करके बनाई गई वस्तु को ठीक से नियंत्रित नहीं किया जा रहा है। ऐसा लगता है कि एक असमर्थित डेटाटाइप है।

आशा है कि इससे इस मुद्दे को स्पष्ट करने में मदद मिलेगी।

फिर से धन्यवाद।

+0

(* स्पाइडर देव यहाँ *) कृपया एक उदाहरण पोस्ट करें जो वास्तव में वैरिएबल एक्सप्लोरर से प्राप्त करना चाहता है, ताकि हम इसका परीक्षण कर सकें और देखें कि हम इसके बारे में क्या कर सकते हैं। –

+0

क्या आप अपने कोड में दोनों फ़ंक्शन कॉल करते हैं? –

+0

@ करलोस कॉर्डोबा कृपया मेरे ओपी में किए गए संपादन को देखें क्योंकि इसमें एक बेहतर उदाहरण है और यह दिखाता है कि समस्या वास्तव में कहां है। –

उत्तर

8

स्थानीय चर की सामग्री को देखने के लिए जब उनमें से कुछ असमर्थित हैं, तो आप इन चरणों का पालन करने के लिए है: परिवर्तनशील एक्सप्लोरर के विकल्प मेनू के लिए

  1. जाओ (पिछले आइकन पर राइट पर बाएं से यह)।

  2. नामक विकल्प का चयन करें असमर्थित डेटा प्रकार को छोड़ दें।

तो फिर तुम सभी स्थानीय f_locals dict में सहेजा चर देखेंगे, भले ही आप इस पर डबल क्लिक करने में असमर्थ हैं।

+0

बंद करें। मैं मूल्य कॉलम के तहत सामग्री का पूर्वावलोकन देखता हूं। –

+0

हम सब कुछ प्रदान कर सकते हैं =) पूर्वावलोकन का आकार बदलने और सभी सामग्री को देखने के लिए चरण * 3 * है। –

+0

आपकी मदद के लिए धन्यवाद !! –

2

ये सभी कामकाज बाहरी लोगों के लिए पढ़ने के लिए आपके कोड को काफी कठिन बना रहे हैं। आपके फ़ंक्शन के अंदर चर के मानों का निरीक्षण करने के लिए आपके पास दो विकल्प हैं। सबसे पहले, आप बस चर आप में रुचि रखते हैं लौट सकता है:

def main(): 
    a = 2 
    b = 4 
    c = a+b 

    return a, b, c 

a, b, c = main() 

दूसरा, अगर आप सिर्फ समारोह की उम्मीद रूप में काम करता है या यह डिबग, तुम समारोह डिबग और यह में कदम सकता है कि जाँच करना चाहते हैं। तो सीधे फ़ाइल चलाने के बजाय मेनू से रन | डीबग का चयन करें। फिर आप फ़ंक्शन में कदम उठा सकते हैं - निष्पादन फ़ंक्शन के अंदर होने पर चर के मान वैरिएबल एक्सप्लोरर में दिखाई देंगे।

+1

आप बिल्कुल सही हैं। मैंने जवाब में प्रस्तावित किया है कि ओपी ने 'निरीक्षण' कोड लिया था। लेकिन ऐसा लगता है कि लोग आसान तरीका पसंद करते हैं =) –

+0

मुझे लगता है कि चर के मान देखने के अन्य तरीके हैं। मुझे लगा कि परिवर्तनीय एक्सप्लोरर इन अपवादों को संभालने में सक्षम होना चाहिए। यह एक बेहद सुविधाजनक सुविधा है .... जब यह ठीक से काम करता है। –

+0

हम इस स्थिति को '2.4' में सुधारने के लिए काम कर रहे हैं ताकि सभी ऑब्जेक्ट प्रकार वेरिएबल एक्सप्लोरर के भीतर देख सकें। –

संबंधित मुद्दे