एक एसर्टन एक सैनिटी-चेक है जिसे आप अपने प्रोग्राम के टेस्टिंग के पूरा होने पर चालू या बंद कर सकते हैं।
एसर्टन के बारे में सोचने का सबसे आसान तरीका इसे raise-if स्टेटमेंट (या अधिक सटीक रूप से, raise-if-not स्टेटमेंट) के समान मानना है। एक एक्सप्रेशन का परीक्षण किया जाता है, और यदि परिणाम गलत आता है, तो एक एक्सेप्शन उठाया जाता है।
प्रोग्रामर अक्सर किसी फ़ंक्शन की शुरुआत में वैध इनपुट की जांच के लिए एसर्टन्स रखते हैं, और फ़ंक्शन कॉल के बाद वैध आउटपुट की जांच के लिए।
assert स्टेटमेंट
जब यह एक assert स्टेटमेंट का सामना करता है, तो पायथन साथ वाले एक्सप्रेशन का मूल्यांकन करता है, जो उम्मीद है कि true होगा। यदि एक्सप्रेशन false है, तो पायथन AssertionError एक्सेप्शन उठाता है।
assert के लिए सिंटैक्स है:
assert Expression[, Arguments]
यदि एसर्टन विफल होता है, तो पायथन ArgumentExpression को AssertionError के आर्गुमेंट के रूप में उपयोग करता है। AssertionError एक्सेप्शन्स को किसी अन्य एक्सेप्शन की तरह try-except स्टेटमेंट का उपयोग करके पकड़ा और हैंडल किया जा सकता है, लेकिन यदि हैंडल नहीं किया गया, तो वे प्रोग्राम को समाप्त कर देंगे और ट्रेसबैक उत्पन्न करेंगे।
उदाहरण
यहां एक फ़ंक्शन है जो डिग्री केल्विन से तापमान को डिग्री फारेनहाइट में परिवर्तित करता है। चूंकि शून्य डिग्री केल्विन उतना ही ठंडा है जितना यह हो सकता है, फ़ंक्शन बाहर निकल जाता है यदि यह एक नकारात्मक तापमान देखता है:
#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
assert (Temperature >= 0), "Colder than absolute zero!"
return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
आउटपुट
जब उपरोक्त कोड निष्पादित होता है, तो यह निम्नलिखित परिणाम देता है:
32.0 451 Traceback (most recent call last): File "test.py", line 9, inprint KelvinToFahrenheit(-5) File "test.py", line 4, in KelvinToFahrenheit assert (Temperature >= 0), "Colder than absolute zero!" AssertionError: Colder than absolute zero!