2009-08-15 19 views
24

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

मुझे पाइथन आत्मनिरीक्षण के बारे में this article मिला, लेकिन मुझे पूरा यकीन है कि यह पायथन 2.5 पर लागू नहीं होता है। सहायता के लिए धन्यवाद।

उत्तर

51

ये कुछ चीजें हैं आप कम से कम कर सकते हैं:

import module 

print dir(module) # Find functions of interest. 

# For each function of interest: 
help(module.interesting_function) 
print module.interesting_function.func_defaults 
4

डीआईआर() फ़ंक्शंस सभी सदस्यों को मॉड्यूल दिखाता है।

5

बस यह भी बहुत अच्छी है:

import module 
help(module) 

यह मॉड्यूल के लिए docstring प्रिंट होगा तो की सामग्री की सूची मॉड्यूल, उनके docstrings मुद्रण भी।

+0

मुझे सहायता की सामग्री प्राप्त करने का कोई वैकल्पिक तरीका नहीं मिल रहा है, विशेष रूप से "पैकेज सामग्री" जो मैं ढूंढ रहा हूं। यह सहायता पाठ में है, लेकिन अन्य उत्तरों में से कोई भी इसे एल्गोरिदमिक रूप से प्राप्त करने का तरीका प्रदान नहीं करता है। – AlanSE

+0

आह, यह इस https://github.com/python/cpython/blob/ac317700ce7439e38a8b420218d9a5035bba92ed/Lib/pydoc.py#L733 के लिए स्रोत कोड के अंदर पाया गया, 'आयातक, modname, ispkg के लिए pkgutil.iter_modules (ऑब्जेक्ट) में .__ पथ __): ' – AlanSE

12

मार्क पिलग्रीम chapter 4, जिसका आप उल्लेख करते हैं, वास्तव में पाइथन 2.5 (और किसी अन्य हालिया 2.* संस्करण) के लिए ठीक है, पीछे की संगतता के लिए धन्यवाद। मार्क help का उल्लेख नहीं करता है, लेकिन मुझे अन्य उत्तरों दिखाई देते हैं।

एक महत्वपूर्ण बात यह है कि कोई भी (मार्क ;-) सहित उल्लेख किया गया है inspect, पाइथन की मानक लाइब्रेरी में एक उत्कृष्ट मॉड्यूल है जो वास्तव में उन्नत आत्मनिरीक्षण में मदद करता है।

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

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