मैं अक्सर तीसरे पक्ष के पुस्तकालयों - पैकेज और मॉड्यूल का उपयोग करके खुद को ढूंढता हूं - जिसमें पर्याप्त दस्तावेज नहीं है। इसलिए स्रोत कोड का अध्ययन करना आवश्यक हो जाता है, लेकिन कुछ हद तक कठिन कार्य भी हो सकता है। मैं (जैसा कि मुझे लगता है कि सभी) dir()
और help()
कार्य शुरू करने के लिए उपयोग करें और हाल ही में मैंने inspect
मॉड्यूल का उपयोग करना शुरू कर दिया है। मैं जानना चाहता हूं कि "विधियों" क्या हैं जिनका उपयोग आप बुरी तरह से प्रलेखित कोड में गोता लगाने के लिए करते हैं और ऐसा करने में दक्षता कैसे बढ़ा सकते हैं। बहुत सराहना में मदद करें।पायथन: व्यावहारिक आत्मनिरीक्षण
उत्तर
मुझे इस प्रकार के कार्य के लिए IPython अनिवार्य लगता है। ?
(शो डॉकस्ट्रिंग) और ??
(शो स्रोत) जादू आदेश, आईपीथॉन की उत्कृष्ट समापन प्रणाली और लाइव ऑब्जेक्ट आत्मनिरीक्षण के साथ वास्तव में मेरे लिए एक अंतर बनाते हैं।
एक उदाहरण सत्र:
In [1]: import sphinx.writers <TAB>
# see available modules and packages - narrow down
In [1]: import shpinx.writers.manpage as manpage
In [2]: manpage.<TAB>
# list and complete on the module's contents
In [3]: manpage.Writer?
# nicely formatted docstring follows
In [4]: manpage.Writer??
# nicely formatted source code follows
In [5]: %edit manpage
# open module in editor
# it really helps if you use something like ctags at this point
In [6]: %edit manpage.Writer
# open module in editor - jump to class Writer
दुर्भाग्य से, सभी कोड इस तरह से निरीक्षण किया जा सकता है। परियोजनाओं के बारे में सोचें कि को मॉड्यूल में if __name__ == '__main__'
में लपेटे बिना या जादू पर भारी भरोसा करने वाली परियोजनाओं (sh दिमाग में आता है) करते हैं।
मैं http://pycallgraph.slowchop.com/ या डॉक्सिजन के साथ कॉलग्राफ बनाना चाहता हूं।
वास्तव में, AST
मॉड्यूल और कुछ अन्य अपेक्षाकृत दर्द रहित सांख्यिकीय विश्लेषण की अनुमति देते हैं। मैं और अधिक चाहता हूं कि किसी भी तरह से गतिशील विश्लेषण करें (क्योंकि, जिसे "func1" कहा जाता है उसका मूल्य बदल सकता है और कॉल पूरी तरह अलग हो सकती हैं)।
@ बॉब - + 1, इसके बारे में नहीं सुना था, दिलचस्प लगता है। धन्यवाद। – root
@root: समस्या यह है कि स्थिर कॉलग्राफ पाइथन जैसे गतिशील भाषा के लिए अपर्याप्त हो सकता है :( –
- 1. आत्मनिरीक्षण
- 2. पायथन जोर - विफलता के आत्मनिरीक्षण में सुधार?
- 3. पायथन आत्मनिरीक्षण: कक्षा विधियों के वर्नाम कैसे प्राप्त करें?
- 4. Django-South आत्मनिरीक्षण नियम
- 5. क्लोजर में आत्मनिरीक्षण
- 6. जावा पैकेज आत्मनिरीक्षण
- 7. कार्यात्मक प्रोग्रामिंग भाषा आत्मनिरीक्षण
- 8. व्यावहारिक विश्वसनीयता
- 9. व्यावहारिक उपयोग
- 10. रूबी में चीजों का आत्मनिरीक्षण कैसे करूं?
- 11. जावास्क्रिप्ट ऑब्जेक्ट आत्मनिरीक्षण कैसे करें?
- 12. घोषणात्मक कक्षाओं के SQLAlchemy आत्मनिरीक्षण
- 13. सामान्य लिस्प में कक्षा आत्मनिरीक्षण
- 14. डी: फ़ंक्शन पैरामीटर नाम आत्मनिरीक्षण
- 15. गतिशील_कास्ट का व्यावहारिक उपयोग?
- 16. एमक्यूटीटी संदेशआईडी व्यावहारिक कार्यान्वयन
- 17. पॉलिमॉर्फिज्म का व्यावहारिक उदाहरण
- 18. मैं SQL सर्वर पर आत्मनिरीक्षण कैसे करूं?
- 19. win32com मॉड्यूल/पायथनॉम मॉड्यूल का आत्मनिरीक्षण
- 20. "आत्मनिरीक्षण-आधारित कोड पूर्णता" क्या है?
- 21. क्या पीटीजीबीजेक्ट आत्मनिरीक्षण में जीटीके डब्ल्यू/पायथन में थ्रेडिंग बदल गई है?
- 22. मेथडेंटल क्लास के व्यावहारिक उपयोग?
- 23. तीन आयामी matrices: व्यावहारिक उपयोग
- 24. Dispatcher.DisableProcessing के लिए व्यावहारिक उपयोग?
- 25. `stackalloc` कीवर्ड का व्यावहारिक उपयोग
- 26. SQLite: व्यावहारिक सीमाएं क्या हैं?
- 27. गतिशील विधि का व्यावहारिक उदाहरण?
- 28. अभिव्यक्ति पेड़ों का व्यावहारिक उपयोग
- 29. इंटरफ़ेस ईवेंट का व्यावहारिक उपयोग
- 30. कोई व्यावहारिक कोडिंग डोजो/काटा विचार?
@ gvalkov - IPython के लिए +1। – root