2008-09-03 13 views
7

मैं अजगर में कुछ आत्मनिरीक्षण करना पड़ा है और यह सुंदर नहीं था:मैं पाइथन में बंदरगाह कैसे कर सकता हूं?

name = sys._getframe(1).f_code 
name = "%s:%d %s()" %(os.path.split(name.co_filename)[1],name.co_firstlineno,name.co_name) 

तरह

foo.py:22 bar() blah blah 

हमारे डिबगिंग आउटपुट में कुछ पाने के लिए।

मैं आदर्श रूप से इस तरह की जानकारी के साथ stderr को कुछ भी प्रस्तुत करना चाहता हूं - क्या पाइथन के भीतर विश्व स्तर पर प्रिंट के व्यवहार को बदलना संभव है?

उत्तर

3

एक प्रिंट स्टेटमेंट "sys.stdout.write" के माध्यम से आईओ करता है ताकि आप प्रिंट स्ट्रीम में हेरफेर करना चाहते हैं तो sys.stdout को ओवरराइड कर सकते हैं।

1

पायथन inspect मॉड्यूल यह बहुत आसान और क्लीनर बनाता है।

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