संपादित 3 महीने पहले द्वारा ExtremeHow संपादकीय टीम
पायथनडिबगिंगपीडीबीसमस्या निवारणकमांड लाइनविंडोमैकलिनक्सप्रोग्रामिंगविकास
अनुवाद अपडेट किया गया 3 महीने पहले
Python एक बहुमुखी और व्यापक रूप से इस्तेमाल की जाने वाली प्रोग्रामिंग भाषा है, जिसे इसकी पठनीयता और सादगी के लिए सराहा जाता है। हालांकि, अन्य किसी भी प्रोग्रामिंग भाषा की तरह, Python कोड में बग्स हो सकते हैं। डिबगिंग किसी भी डेवलपर के लिए एक आवश्यक कौशल है, क्योंकि यह उन्हें अपने कोड में समस्याओं की पहचान करने और उन्हें ठीक करने की अनुमति देता है। Python में, डिबगिंग के लिए सबसे लोकप्रिय टूल्स में से एक है PDB, जिसका मतलब है Python Debugger। इस आर्टिकल में हम विस्तार से समझेंगे कि कैसे Python कोड को PDB का उपयोग करके डिबग किया जा सकता है।
PDB का मतलब है Python Debugger, यह एक अंतर्निहित डिबगिंग टूल है जो Python के साथ आता है। यह डेवलपर्स को उनके कोड को देखने, वेरिएबल्स की जांच करने, और यह पहचानने की अनुमति देता है कि चीजें कहां गलत हो रही हैं। PDB एक कमांड-लाइन टूल है जो पहले कठिन लग सकता है, लेकिन जब आप इसे समझ जाते हैं, तो यह अत्यधिक शक्तिशाली और उपयोगी हो जाता है।
डिबगिंग में जाने से पहले, PDB में कुछ बुनियादी कमांड्स को समझना महत्वपूर्ण है। यहां कुछ महत्वपूर्ण कमांड्स दिए गए हैं जिन्हें आप उपयोग करेंगे:
PDB का उपयोग शुरू करने के लिए, आप इसे अपनी Python स्क्रिप्ट चलाते समय कमांड लाइन से शामिल कर सकते हैं। मान लेते हैं कि आपके पास एक स्क्रिप्ट है जिसका नाम है example.py
। आप डिबगर को इस तरह से शुरू कर सकते हैं:
python -m pdb example.py
यह कमांड आपकी स्क्रिप्ट को PDB के तहत चलाता है, और आप अपनी स्क्रिप्ट की पहली पंक्ति से डिबगिंग शुरू कर सकते हैं।
ब्रेकपॉइंट PDB के साथ डिबगिंग करते समय बहुत महत्वपूर्ण होते हैं। वे आपको कोड के एक विशिष्ट बिंदु पर निष्पादन को रोकने की अनुमति देते हैं। एक बार जब प्रोग्राम रुक जाता है, आप पर्यावरण, वेरिएबल्स, और निष्पादन के प्रवाह को जांच सकते हैं।
आप इस प्रकार से एक विशिष्ट पंक्ति नंबर पर ब्रेकपॉइंट सेट कर सकते हैं:
b 10
यहां, डिबगर आपकी स्क्रिप्ट की लाइन 10 पर निष्पादन को रोक देगा। आप फंक्शन पर भी ब्रेकपॉइंट सेट कर सकते हैं:
b my_function
यह कमांड हर बार my_function
कॉल किए जाने पर निष्पादन को रोक देगा।
कोड के माध्यम से आगे बढ़ना डिबगिंग में एक सामान्य कार्य है। यह आपको कार्यक्रम को पंक्ति दर पंक्ति चलाने और निष्पादन के प्रवाह को देखने की अनुमति देता है। आप कोड में अगली पंक्ति पर जाने के लिए 'n' कमांड का उपयोग कर सकते हैं:
n
यदि आप फंक्शन कॉल में प्रवेश करने में रुचि रखते हैं, तो 's' कमांड का उपयोग करें:
s
'n' और 's' के बीच का अंतर महत्वपूर्ण है: जबकि 'n' वर्तमान स्कोप में अगली पंक्ति पर जाता है, 's' किसी भी फंक्शन कॉल में चला जाता है जो वर्तमान स्थिति में है।
वेरिएबल्स का निरीक्षण करना डिबगिंग का एक और महत्वपूर्ण हिस्सा है। आप 'p' कमांड के साथ वेरिएबल्स का मान जांच सकते हैं:
p variable_name
अधिक जटिल अभिव्यक्तियों के लिए, केवल यह अभिव्यक्ति लिखें:
p my_variable + 10
यह my_variable + 10
का मूल्यांकन करेगा और परिणाम प्रिंट करेगा।
एक बार जब आप अपने कोड को जांचने या कदम आगे बढ़ाने का काम कर लेते हैं, तो आप सामान्य निष्पादन जारी रखना चाह सकते हैं। ऐसा करने के लिए, 'c' कमांड का उपयोग करें:
c
यह तब तक निष्पादन को जारी रखेगा जब तक कोई अन्य ब्रेकपॉइंट नहीं आता या प्रोग्राम समाप्त नहीं हो जाता।
आइए एक सरल उदाहरण पर विचार करें कि कैसे PDB का उपयोग किया जा सकता है। मान लीजिए हमारे पास निम्नलिखित स्क्रिप्ट है, जिसमें एक बग है:
def add_numbers(a, b): return a + b def main(): result = add_numbers(3, "4") print("The result is:", result) if __name__ == "__main__": main()
इस स्क्रिप्ट में, main
फंक्शन में एक बग है। add_numbers
फंक्शन को एक स्ट्रिंग के साथ कॉल किया गया है, जबकि उसे एक इंटेजर के साथ होना चाहिए, जिससे TypeError
उत्पन्न होगा।
इसे डिबग करने के लिए, आइए PDB के साथ स्क्रिप्ट चलाएं:
python -m pdb script_name.py
डिबगर शुरू होता है, और आप एक ब्रेकपॉइंट उस बिंदु पर सेट कर सकते हैं जहां आप रुचि रखते हैं, उदाहरण के लिए जहां add_numbers
फंक्शन को कॉल किया जाता है:
b main c
प्रोग्राम तब तक चलता है जब तक कि यह main
फंक्शन पर ब्रेकपॉइंट तक नहीं पहुंचता। यहां से, आप समस्याग्रस्त पंक्ति की जांच कर सकते हैं:
ss pa pb
ये कमांड आपको यह पहचानने में मदद करेंगे कि add_numbers
फंक्शन के इनपुट गलत प्रकार के हैं। आप देखेंगे कि b
वास्तव में एक स्ट्रिंग है, जिससे TypeError
हो रहा है।
एक बार जब आप डिबगिंग समाप्त कर लेते हैं, तो आप 'q' कमांड का उपयोग करके PDB से बाहर निकल सकते हैं:
q
यह डिबगर को समाप्त करता है और प्रोग्राम को बंद करता है।
बुनियादी कमांड्स के अलावा, PDB उन्नत विशेषताएं प्रदान करता है जो आपके डिबगिंग अनुभव को बढ़ा सकती हैं:
b 10, a == 5
import pdb import traceback try: main() except Exception: traceback.print_exc() pdb.post_mortem()
pdb.set_trace()
जोड़ सकते हैं जहां आप डिबगर को रोकना चाहते हैं:import pdb def buggy_function(): a = 10 b = "5" pdb.set_trace() # यहां डिबगिंग शुरू करें return a + b buggy_function()
PDB का उपयोग सीखने से आपकी क्षमता Python प्रोग्राम्स को डिबग और समझने में काफी बढ़ सकती है। यद्यपि सभी कमांड्स से परिचित होने में कुछ समय लग सकता है, लेकिन पुरस्कार आपके कोडबेस में गहरे और अधिक व्यापक अंतर्दृष्टि का होता है। याद रखें कि डिबगिंग केवल त्रुटियों को ढूंढ़ने और ठीक करने के बारे में नहीं है, बल्कि आपके ऐप्लिकेशन की लॉजिक और फ्लो को बेहतर तरीके से समझने का मौका है। PDB के साथ, आपके पास एक शक्तिशाली टूल है जो आपको प्रभावी ढंग से अपने Python कोड का निरीक्षण, मूल्यांकन, और सुधार करने की अनुमति देता है।
डिबगिंग सॉफ्टवेयर विकास का एक महत्वपूर्ण हिस्सा है, और PDB जैसे टूल्स में महारत हासिल करने से आपकी उत्पादकता और कोड की गुणवत्ता में काफी वृद्धि हो सकती है। प्रैक्टिस और अनुभव के माध्यम से, आप तेजी से और अधिक प्रभावी ढंग से डिबगिंग करने में सक्षम हो जाएंगे।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं