पायथन 3 - उपकरण / उपयोगिताएँ
मानक पुस्तकालय कई मॉड्यूलों के साथ आता है जिन्हें मॉड्यूल और कमांड-लाइन उपयोगिताओं के रूप में उपयोग किया जा सकता है।
जिले मॉड्यूल:
डिस मॉड्यूल है पायथन डिस्सेम्बलर। यह बाइट कोड को एक प्रारूप में परिवर्तित करता है जो मानव उपभोग के लिए थोड़ा अधिक उपयुक्त है।
आप डिस्सेम्बलर को कमांड लाइन से चला सकते हैं। यह दी गई स्क्रिप्ट को संकलित करता है और असंतुष्ट बाइट कोड को STDOUT में प्रिंट करता है। आप डिस को मॉड्यूल के रूप में भी उपयोग कर सकते हैं। dis फ़ंक्शन अपने एकल तर्क के रूप में एक वर्ग, विधि, फ़ंक्शन या कोड ऑब्जेक्ट लेता है।
उदाहरण
#!/usr/bin/python3
import dis
def sum():
vara = 10
varb = 20
sum = vara + varb
print ("vara + varb = %d" % sum)
# Call dis function for the function.
dis.dis(sum)
यह निम्नलिखित परिणाम का उत्पादन करेगा -
6 0 LOAD_CONST 1 (10)
3 STORE_FAST 0 (vara)
7 6 LOAD_CONST 2 (20)
9 STORE_FAST 1 (varb)
9 12 LOAD_FAST 0 (vara)
15 LOAD_FAST 1 (varb)
18 BINARY_ADD
19 STORE_FAST 2 (sum)
10 22 LOAD_CONST 3 ('vara + varb = %d')
25 LOAD_FAST 2 (sum)
28 BINARY_MODULO
29 PRINT_ITEM
30 PRINT_NEWLINE
31 LOAD_CONST 0 (None)
34 RETURN_VALUE
pdb मॉड्यूल
Pdb मॉड्यूल मानक पायथन डिबगर है। यह bdb डीबगर फ्रेमवर्क पर आधारित है।
आप डिबगर को कमांड लाइन से टाइप कर सकते हैं (टाइप n [या अगला] अगली लाइन पर जाने के लिए और उपलब्ध कमांड की सूची प्राप्त करने में मदद करने के लिए) -
उदाहरण:
इससे पहले कि आप चलाने की कोशिश करें pdb.py, अपने मार्ग को ठीक से तय कर लें, जिससे कि पायथन लिब डाइरेक्टरी में आ जाए। तो चलिए हम उपरोक्त उदाहरण के साथ प्रयास करते हैं-
$pdb.py sum.py
> /test/sum.py(3)<module>()
-> import dis
(Pdb) n
> /test/sum.py(5)<module>()
-> def sum():
(Pdb) n
>/test/sum.py(14)<module>()
-> dis.dis(sum)
(Pdb) n
6 0 LOAD_CONST 1 (10)
3 STORE_FAST 0 (vara)
7 6 LOAD_CONST 2 (20)
9 STORE_FAST 1 (varb)
9 12 LOAD_FAST 0 (vara)
15 LOAD_FAST 1 (varb)
18 BINARY_ADD
19 STORE_FAST 2 (sum)
10 22 LOAD_CONST 3 ('vara + varb = %d')
25 LOAD_FAST 2 (sum)
28 BINARY_MODULO
29 PRINT_ITEM
30 PRINT_NEWLINE
31 LOAD_CONST 0 (None)
34 RETURN_VALUE
--Return--
> /test/sum.py(14)<module>()->None
-v dis.dis(sum)
(Pdb) n
--Return--
> <string>(1)<module>()->None
(Pdb)
प्रोफ़ाइल मॉड्यूल
प्रोफ़ाइल मॉड्यूल मानक पायथन प्रोफाइलर है। आप कमांड लाइन से प्रोफाइलर चला सकते हैं -
उदाहरण
आइए हम निम्नलिखित कार्यक्रम की रूपरेखा तैयार करने का प्रयास करते हैं -
#!/usr/bin/python3
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
अब, दौड़ने का प्रयास करें cProfile.pyइस फाइल के ऊपर sum.py इस प्रकार है -
$cProfile.py sum.py
vara + varb = 30
4 function calls in 0.000 CPU seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno
1 0.000 0.000 0.000 0.000 <string>:1(<module>)
1 0.000 0.000 0.000 0.000 sum.py:3(<module>)
1 0.000 0.000 0.000 0.000 {execfile}
1 0.000 0.000 0.000 0.000 {method ......}
tabnanny मॉड्यूल
टैबैनी मॉड्यूल अस्पष्ट इंडेंटेशन के लिए पायथन स्रोत फ़ाइलों की जांच करता है। यदि कोई फ़ाइल टैब और रिक्त स्थान को एक तरह से मिलाती है, जो इंडेंटेशन को फेंकती है, तो कोई फर्क नहीं पड़ता कि आप किस टैब का उपयोग कर रहे हैं, नानी शिकायत करती है -
उदाहरण
आइए हम निम्नलिखित कार्यक्रम की रूपरेखा तैयार करने का प्रयास करते हैं -
#!/usr/bin/python3
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
यदि आप tabnanny.py के साथ एक सही फ़ाइल की कोशिश करेंगे, तो यह निम्नानुसार शिकायत नहीं करेगा -
$tabnanny.py -v sum.py
'sum.py': Clean bill of health.