अगर x
खाली होने पर मैं कोई त्रुटि उठाना चाहता हूं तो मैं निम्न की तरह कुछ कर सकता हूं:
x = ...
if not x: raise SomeException(...)
या:
assert x, "Some Exception"
मेरा प्रश्न यह है कि क्या तार्किक कथन के हिस्से के रूप में अपवाद/दावा करना संभव है या क्या यह पायथन सिंटैक्स का हिस्सा है कि इसका अपना अलग बयान होना चाहिए, इससे मेरा मतलब कुछ ऐसा करना है:
z = x**2 or raise SomeException("Value cannot be zero")
या:
z = x**2 or assert x...
या:
z = x**2, assert ...
या ऐसा करने का जो भी तरीका हो, मुझे आशा है कि मेरा इरादा स्पष्ट है। क्या पाइथन में ऐसा करना संभव है?
1 उत्तर
पायथन में वाक्यविन्यास अमान्य है। आप क्या कर सकते हैं एक ऐसा फ़ंक्शन बनाएं जो किसी दिए गए गणना की जांच करता है और निम्नानुसार अपवाद/जोर देता है:
def test_and_raise(result):
if not result:
raise SomeException("Some text")
return result
z = test_and_raise(x**2)
यदि आप चाहते हैं कि आप इसे उस प्रकार के अपवाद को निर्दिष्ट करने के लिए बढ़ा सकते हैं जिसे आप फेंकना चाहते हैं:
def test_and_raise(result, exception_type):
if not result:
raise exception_type("Some text")
return result
z = test_and_raise(x**2, AssertionError)
एक चेतावनी हालांकि, आपको इस बात से अवगत होना चाहिए कि जब भी परिणाम 0, कोई नहीं या गलत होगा तो अपवाद उठाया जाएगा, इसलिए गलत उपयोग से आप अवांछित व्यवहार का सामना कर सकते हैं
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
raise
औरassert
दोनों ही कथन हैं, उन्हें इस तरह के व्यंजकों के भाग के रूप में नहीं जोड़ा जा सकता है।