2010-12-16 11 views
26

कहें कि पायथन खोल (आईडीएलई) में मैंने कुछ वर्गों, कार्यों, चर परिभाषित किए हैं। कक्षाओं की वस्तुओं को भी बनाया। तब मैंने कुछ वस्तुओं को हटा दिया और कुछ अन्य बनाया। समय के बाद में, मैं कैसे जान सकता हूं कि वर्तमान में सक्रिय वस्तुओं, चर, और स्मृति में सक्रिय विधियों की परिभाषाएं क्या हैं?पाइथन में जीवित सभी प्रारंभिक वस्तुओं और फ़ंक्शन परिभाषाओं की सूची कैसे प्राप्त करें?

उत्तर

31

हां।

>>> import gc 
>>> gc.get_objects() 

ऐसा नहीं है कि आपको वह उपयोगी लगेगा। उनमें से बहुत है। :-) जब आप पाइथन शुरू करते हैं तो 4000 से अधिक।

>>> locals() 

और एक सक्रिय विश्व स्तर पर:

शायद थोड़ा और अधिक उपयोगी सभी चर सक्रिय स्थानीय स्तर पर है

>>> globals() 

(ध्यान दें कि "विश्व स्तर पर" पायथन में वास्तव में वैश्विक नहीं है इस तरह के लिए। इसके लिए आपको ऊपर gc.get_objects() की आवश्यकता है, और जैसा कि आपने उल्लेख किया है, आपको उपयोगी खोजने की संभावना नहीं है)।

+1

धन्यवाद। वास्तव में मैं क्या चाहता था। लेकिन 'gc.get_objects()' भारी डंप देता है। 'स्थानीय()' और 'ग्लोबल्स() 'ठीक है। – boring

+9

दाएं। get_objects जो आपने मांगे, स्थानीय() और ग्लोबल्स() जो आप चाहते थे उसे दें। ;-) –

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