मुख्य सामग्री पर जाएँ

Python में assert स्टेटमेंट का उपयोग कैसे करें

Python में assert स्टेटमेंट को लागू करना आसान है: हम assert का उपयोग शर्तों का परीक्षण करने और यदि शर्त गलत हो तो संदेश दिखाने के लिए करते हैं।
· 6 मि॰ पढ़ें

AI के साथ खोजें

Python प्रोग्रामिंग में assert स्टेटमेंट आपके कोड में बुनियादी सत्य स्थापित करने का एक टूल है। यह डेवलपर्स को अपने कोड के भीतर मान्यताओं को परखने की शक्ति देता है। इस ट्यूटोरियल में, हम Python के assert स्टेटमेंट में महारत हासिल करेंगे—इसके सिंटैक्स, उपयोग और डिबगिंग व त्रुटि पहचान में अनुप्रयोग सहित। Python के assert स्टेटमेंट में दक्ष होकर, हम एक विशेषज्ञ Python Programmer बनने के एक कदम और करीब होंगे। 

संक्षिप्त उत्तर: Python Assertions कैसे लिखें 

assert स्टेटमेंट का सिंटैक्स सीधा-सादा है:

assert condition, message

यहाँ, condition उस अभिव्यक्ति को संदर्भित करता है जिसकी जाँच की जा रही है, जबकि message एक वैकल्पिक त्रुटि संदेश है जो असेर्शन विफल होने पर दिखाई देता है।

यहाँ कुछ assertions हैं जिन्हें आप अपने Python कोड में आज़मा सकते हैं। पहले मामले में, अभिव्यक्ति 3<4>5 तार्किक रूप से गलत है, इसलिए Python हमारे द्वारा दिए गए संदेश "Math does not work that way." के साथ एक AssertionError उठाता है। दूसरे मामले में, अभिव्यक्ति 0==0 एक तौटोलॉजी है, इसलिए हमें "This shouldn't throw an error." संदेश कभी नहीं दिखता। 

assert 3<4>5, "Math does not work that way."
assert 0==0, "This shouldn't throw an error."

Python के assert स्टेटमेंट का अवलोकन

अब चलिए Python के assert स्टेटमेंट को और करीब से देखते हैं—यह कैसे और क्यों उपयोग किया जाता है। इस ट्यूटोरियल के अंत तक, आप Python में assert स्टेटमेंट का उपयोग करने में माहिर हो जाएंगे। 

Python assertions क्या हैं?

सामान्य रूप से, प्रोग्रामिंग में assertions ऐसे कॉन्स्ट्रक्ट हैं जो कोडबेस में शर्तों की सत्यता की पुष्टि करते हैं। दूसरे शब्दों में, ये वे सत्य हैं जिनका प्रोग्राम को पालन करना चाहिए, अन्यथा त्रुटि फेंकी जाएगी। Python "assert" शब्द का उपयोग करके इन प्रोग्रामिंग assertions को बहुत ही प्रत्यक्ष सिंटैक्स से लागू करता है: assert स्टेटमेंट हमें ऐसे assertions बनाने देता है।

Python assertions का उपयोग कब करें

Assertions डिबगिंग, मान्यताओं की पुष्टि करने और विशेष शर्तों के तहत आपके कोड के अपेक्षित व्यवहार को सुनिश्चित करने के लिए अमूल्य हैं। इनके जरिए आप कंप्यूटर को बताते हैं कि आप उससे क्या अपेक्षा रखते हैं और कहते हैं कि जब वह कुछ अलग कर रहा हो तो रुक जाए। यह तब उपयोगी है जब आप कोई नया प्रोग्राम बना रहे हों या किसी फ़ीचर को जोड़ रहे हों या किसी मौजूदा ऐप को अपडेट कर रहे हों।

Assertions उन परिस्थितियों में खासतौर पर चमकते हैं जहाँ डेवलपर्स को अपने कोडबेस में preconditions, postconditions या invariants लागू करने होते हैं। ये गार्डरेल्स की तरह काम करते हैं—यदि कुछ शर्तें उल्लंघित हों तो कोड को आगे बढ़ने से रोकते हैं—और इस तरह संभावित बग्स का जल्दी पता लगाने में मदद मिलती है।

कोड में रणनीतिक रूप से assertions लगाने से आप त्रुटियों को उनके स्रोत के करीब पकड़ सकते हैं, जिससे डिबगिंग सरल हो जाती है। DataCamp का Python Developer करियर ट्रैक सभी स्तरों के आकांक्षी डेवलपर्स के लिए फंक्शनल प्रोग्रामिंग कौशल का अभ्यास करने का बढ़िया कोर्स है क्योंकि इसमें बुनियादी और उन्नत दोनों तरह की अवधारणाओं पर अभ्यास शामिल हैं।

Python assertions का उपयोग कब न करें

हालाँकि विकास के दौरान assertions अमूल्य हैं, कुछ परिदृश्य ऐसे होते हैं जहाँ इनका उपयोग अनुचित हो सकता है।

यह समझना महत्वपूर्ण है कि जब आपका कोड प्रोडक्शन के लिए कम्पाइल होता है, तो assertions को वैश्विक रूप से अक्षम किया जा सकता है। इसका मतलब है कि आपको assertions पर रन-टाइम समस्याओं को संभालने के लिए निर्भर नहीं होना चाहिए, जैसे कि उपयोगकर्ता द्वारा गलत डेटा इनपुट करना। इसके बजाय, इन्हें विकास संबंधी समस्याओं—जैसे तर्क या गणितीय अशुद्धियों की पहचान—के लिए इस्तेमाल करना चाहिए।

प्रोडक्शन कोड में त्रुटियों को संभालने या डेटा को मान्य करने के लिए, exception handling कॉन्स्ट्रक्ट्स शामिल करें ताकि कोड त्रुटियों से शालीनता से उबर सके, डिबगिंग के लिए प्रासंगिक जानकारी लॉग कर सके, और उपयोगकर्ताओं को अर्थपूर्ण फीडबैक दे सके।

त्रुटियाँ खोजने और उन्हें सुधारने के बारे में अधिक जानने के लिए हमारा Exception and Error Handling in Python ट्यूटोरियल देखें या हमारा Associate Data Scientist in Python कोर्स करें। 

Python में assert स्टेटमेंट से जुड़ी आम गलतियाँ और भ्रांतियाँ

Python में assert स्टेटमेंट का उपयोग करते समय एक आम गलती है पैरेंथेसिस (कोष्ठक) का उपयोग करना। यह समझने योग्य है क्योंकि कई फ़ंक्शंस पैरेंथेसिस का उपयोग करते हैं और उन्हें शामिल करना स्वाभाविक लग सकता है। हालाँकि, assert स्टेटमेंट तकनीकी रूप से Python में कोई फ़ंक्शन नहीं है, इसलिए यह विशेष सिंटैक्स का उपयोग करता है। यदि आप पैरेंथेसिस का उपयोग करते हैं, तो आपको संभवतः सिंटैक्स चेतावनियाँ और तार्किक त्रुटियाँ मिलेंगी।

assert स्टेटमेंट में पैरेंथेसिस उपयोग करने के कारण होने वाली त्रुटि का उदाहरण।SyntaxWarning: assertion is always true, perhaps remove parentheses?

एक और आम गलती है condition के बाद कॉमा लगाना भूल जाना। ऐसा करने पर सिंटैक्स एरर आएगा।

assert स्टेटमेंट में कॉमा न होने के कारण त्रुटि का उदाहरण।SyntaxError: invalid syntax

AssertionError exception

जब भी किसी assertion की शर्तें उल्लंघित होती हैं, एक AssertionError exception उठाया जाता है। यह त्रुटि प्रोग्राम के निष्पादन को रोक देती है; आपका सेट किया कोई भी वैकल्पिक त्रुटि संदेश प्रदर्शित होगा। चूँकि assertions का उपयोग मुख्यतः विकास के दौरान आपके कोड का परीक्षण करने के लिए किया जाता है, यदि आपको Python का AssertionError संदेश मिलता है, तो आम तौर पर उसे गंभीरता से लेना चाहिए। यह आपके कोड में किसी घातक खामी की ओर इशारा कर सकता है।

व्यावहारिक अनुप्रयोग

Python में assert स्टेटमेंट का उपयोग कई व्यावहारिक अनुप्रयोगों में किया जा सकता है। हमारा Writing Functions in Python इंटरैक्टिव कोर्स ऐसे कई अभ्यास प्रदान करता है जो आपको महारत हासिल करने में मदद करेंगे। यहाँ दो उदाहरण दिए गए हैं। 

किसी फ़ंक्शन के भीतर assert का उपयोग

Assertions का उपयोग करने का एक उपयोगी तरीका यह है कि उन्हें फ़ंक्शंस में डालें। यह सुनिश्चित करने में मदद कर सकता है कि आपके फ़ंक्शंस इच्छित रूप से व्यवहार करें।

def divide(a, b):
assert b != 0, "Division by zero!"
return a / b

# Test cases
print(divide(10, 2))  # Output: 5.0
print(divide(8, 0))   # AssertionError: Division by zero!

unittest के साथ assert का उपयोग

अपने कोड का परीक्षण विकास प्रक्रिया का एक आवश्यक चरण है। Unittest एक लाइब्रेरी है जिसे आपका कोड कुशलता से टेस्ट करने में मदद के लिए डिज़ाइन किया गया है, और यह ऐसा करने के लिए assert स्टेटमेंट्स का उपयोग करती है। मैं assert स्टेटमेंट्स का अक्सर इसी तरह उपयोग करता/करती हूँ। यहाँ एक उदाहरण है जो आपको हमारे Introduction to Testing in Python कोर्स में मिल सकता है। 

import unittest

class TestMathFunctions(unittest.TestCase):
    def test_addition(self):
        self.assertEqual(2 + 2, 4)

    def test_subtraction(self):
        self.assertEqual(5 - 3, 2)

    def test_division(self):
        self.assertRaises(ZeroDivisionError, divide, 10, 0)

if __name__ == '__main__':
    unittest.main()

निष्कर्ष

विकास के दौरान Python का assert स्टेटमेंट डिबगिंग और आपके कोड में शर्तों की पुष्टि करने के लिए एक अहम टूल है। यद्यपि मान्यताओं की जाँच के लिए यह सरल और प्रभावी है, प्रोडक्शन में इस पर निर्भर नहीं होना चाहिए क्योंकि कम्पाइल किए गए कोड में इसे निष्क्रिय किया जा सकता है। इसके बजाय, सुदृढ़ त्रुटि प्रबंधन के लिए exception handling का उपयोग किया जाना चाहिए। 

बचे हुए प्रश्नों के लिए हमारे Coding Best Practices and Guidelines ट्यूटोरियल पर भी नज़र डालें।

Amberle McKee

लेखक

Amberle McKee

मैं एक पीएचडी हूँ, जिसके पास जैविक अनुसंधान परिवेश में डेटा के साथ काम करने का 13 वर्षों का अनुभव है। मैं Python, MATLAB और R सहित कई प्रोग्रामिंग भाषाओं में सॉफ्टवेयर बनाती/बनाता हूँ। मुझे सीखने के प्रति अपने प्रेम को दुनिया के साथ साझा करने का जुनून है।

विषय