2009-05-14 6 views
12

मुझे यह जांचने की ज़रूरत है कि कोई चर एक मॉड्यूल है या नहीं। इसे सबसे साफ तरीके से कैसे करें?कैसे इंस्टेंसेंस (एक्स, मॉड्यूल) को कैसे करें?

मुझे कुछ प्रेषक फ़ंक्शन प्रारंभ करने के लिए इसकी आवश्यकता है और मैं चाहता हूं कि फ़ंक्शन या तो तर्क या मॉड्यूल को तर्क के रूप में स्वीकार कर सके।

+1

इसके अलावा, क्या आपको वाकई तर्क के प्रकार की जांच करने की आवश्यकता है? यदि फ़ंक्शन किस तरह के तर्क के आधार पर कुछ अलग करता है, तो सुनिश्चित करें कि आपको जांच करनी है, लेकिन अन्यथा यह आमतौर पर अधिक प्रकार के "पायथनिक" प्रकार को जांचने के लिए नहीं है। –

+0

पाइथोनिक तरीका विधियों और चर की उपस्थिति की जांच करना है। यदि जांच करने के लिए बहुत सारे लोग हैं, तो इंस्टेंसेंस को प्राथमिकता दी जाती है। – Unknown

+0

खैर, पाइथोनिक तरीका केवल उन लोगों का उपयोग करके "चेक" करना है, और यदि कुछ ऐसा होना चाहिए जो नहीं है, तो पाइथन एक त्रुटि उठाता है। मैं नहीं देखता कि "चेक" करने के लिए कितने गुण हो सकते हैं यदि आप उन्हें वैसे भी इस्तेमाल करने जा रहे हैं। –

उत्तर

24
>>> import os, types 
>>> isinstance(os, types.ModuleType) 
True 

(यह भी os तरह निर्मित लोगों के रूप में अपने खुद के अजगर मॉड्यूल के लिए काम करता है, साथ ही।)

+0

धन्यवाद! यह पूरी तरह से काम करता है! –

4

मैं इस का उपयोग करें ताकि आप की जरूरत नहीं है प्रकार मॉड्यूल आयात करना चाहते:

isinstance(amodule, __builtins__.__class__) 
संबंधित मुद्दे