pyclbr पायथन लाइब्रेरी में मॉड्यूल पायथन मॉड्यूल में परिभाषित कार्यों, कक्षाओं और विधियों के बारे में जानकारी निकालता है। जानकारी को मॉड्यूल आयात करने के बजाय पायथन स्रोत कोड से निकाला जाता है।
यह मॉड्यूल readmodule() . को परिभाषित करता है फ़ंक्शन जो डिक्शनरी मैपिंग मॉड्यूल-स्तरीय वर्ग नामों को क्लास डिस्क्रिप्टर को लौटाता है। फ़ंक्शन एक मॉड्यूल नाम को पैरामीटर के रूप में लेता है। यह एक पैकेज के भीतर एक मॉड्यूल का नाम हो सकता है। उस स्थिति में पथ निर्देशिका पथ का एक क्रम है जो sys.path से जुड़ा हुआ है, जिसका उपयोग मॉड्यूल स्रोत कोड का पता लगाने के लिए किया जाता है।
निम्नलिखित कोड पायथन लाइब्रेरी के सॉकेट मॉड्यूल में कक्षाओं और विधियों को पार्स करने के लिए रीडमॉड्यूल () फ़ंक्शन का उपयोग करता है।
आयात pyclbrmod =pyclbr.readmodule("socket")def show(c):s ="class" + c.name प्रिंट (s + ":") मेथड्स =c.methods.items() मेथड के लिए, लिनेनो विधियों में:प्रिंट (" def " + मेथड) प्रिंट () k के लिए, v mod.items में ():शो (v)
कक्षा IntEnum:class IntFlag:def _missing_ def _create_pseudo_member_ def __or__ def __and__ def __xor__ def __invert__class _GiveupOnSendfile:class सॉकेट:def __init__ def __enter__ def __exit__ def __repr__ def _repr__ _dup _ def _ def _ def _ रक्षा _ प्राप्त करें def _ रक्षा _ प्राप्त करें def _decref_socketios def _real_close def करीब def डिटैच def परिवार def प्रकार def get_inheritable def set_inheritableclass SocketIO:def __init__ def readinto def लिखें def पठनीय def लिखने योग्य def खोजने योग्य def फ़ाइलनो def नाम def मोड def पास
pyclbr मॉड्यूल readmodule_ex() . को भी परिभाषित करता है फ़ंक्शन जो मॉड्यूल में परिभाषित प्रत्येक फ़ंक्शन और वर्ग के लिए फ़ंक्शन या क्लास डिस्क्रिप्टर युक्त एक शब्दकोश देता है। लौटाया गया शब्दकोश मॉड्यूल-स्तरीय फ़ंक्शन और वर्ग के नामों को उनके वर्णनकर्ताओं के लिए मैप करता है। नेस्टेड वस्तुओं को उनके माता-पिता के बच्चों के शब्दकोश में दर्ज किया जाता है।
>>> x =pyclbr.readmodule_ex('socket')>>> k,v के लिए x.items() में:प्रिंट (k,v)IntEnumIntFlag _intenum_converter _GiveupOnSendfile सॉकेट सॉकेटियो getfqdn क्रिएट_कनेक्शन इन फ़ंक्शन का उपयोग कस्टम मॉड्यूल के साथ-साथ उपयोगकर्ता परिभाषित कक्षाओं और विधियों की निर्देशिका लाने के लिए किया जा सकता है।
निम्नलिखित उदाहरण में एक मॉड्यूल 'triangles.py' का उपयोग इसकी वर्ग संरचना प्राप्त करने के लिए किया जाता है।
#triangles.pyआयात गणित वर्ग त्रिभुज:def __init__(self, a, b, c):self.a =a self.b =b self.c =c def area(self):s=(self.a+) self.b+self.c)/2 क्षेत्र=math.sqrt(s*(s-self.a)*(s-self.b)*(s-self.c)) रिटर्न एरियाक्लास इक्विट्रिएंगल (त्रिकोण):def __init__(self, a):b =a c =a super().__init__(a,b,c) def area(self):area=math.sqrt(3)*pow(self.a,2)/4 रिटर्न क्षेत्रअब हम 'त्रिकोण' मॉड्यूल में वर्ग और विधियाँ प्राप्त करेंगे।
>>> br =pyclbr.readmodule_ex('triangles')>>> for i,j in br.items():Print (i,j.methods) Triangle {'__init__':3, 'area':7}समकोण {'__init__':12, 'क्षेत्र':16}pyclbr मॉड्यूल दो वस्तुओं को परिभाषित करता है - क्लास ऑब्जेक्ट और फंक्शन ऑब्जेक्ट।
फ़ंक्शन वस्तु में निम्नलिखित विशेषताएं हैं
file
उस फ़ाइल का नाम जिसमें फ़ंक्शन परिभाषित है।
मॉड्यूल
फ़ंक्शन को परिभाषित करने वाले मॉड्यूल का नाम वर्णित है।
name
फ़ंक्शन का नाम।
lineno
फाइल में लाइन नंबर जहां से डेफिनिशन शुरू होती है।
parent
शीर्ष-स्तरीय कार्यों के लिए, कोई नहीं। नेस्टेड फ़ंक्शंस के लिए, parent.
बच्चे
डिस्क्रिप्टर फॉरनेस्टेड फंक्शन्स और क्लासेस के लिए एक डिक्शनरी मैपिंग नाम।
कक्षा ऑब्जेक्ट में उपरोक्त के अलावा दो और विशेषताएँ हैं
super
क्लास ऑब्जेक्ट्स की एक सूची जो वर्णित की जा रही क्लास के तत्काल बेस क्लासेस का वर्णन करती है।
तरीके
एक डिक्शनरी मैपिंग मेथड लाइन नंबर्स को नाम देती है।