मैंने जोरदार बनाम अपवादों का उपयोग करने के बारे में पढ़ा है, लेकिन मैं अभी भी "इसे प्राप्त नहीं कर रहा हूं"। ऐसा लगता है जब भी मुझे लगता है कि मैं ऐसी परिस्थिति में हूं जहां मुझे जोर देना चाहिए, बाद में विकास में मुझे लगता है कि मैं यह सुनिश्चित करने के लिए "छलांग लगाने से पहले देख रहा हूं" कि जब मैं फ़ंक्शन को कॉल करता हूं तो असफल विफल नहीं होता है। चूंकि कोशिश करने के लिए पसंद करने के बारे में एक और पायथन मुहावरे है, सिवाय इसके कि, मैं आम तौर पर जोर देकर खारिज कर देता हूं और इसके बजाय अपवाद फेंक देता हूं। मुझे अभी तक ऐसा स्थान नहीं मिला है जहां यह एक जोर देने का अधिकार लगता है। क्या कोई कुछ अच्छे उदाहरणों के साथ आ सकता है?पायथन में जोर देने का उदाहरण उदाहरण?
उत्तर
एक अच्छा दिशानिर्देश assert
उपयोग कर रहा है, जब इसके ट्रिगर अपने कोड में एक बग का मतलब है। जब आपका कोड कुछ मानता है और धारणा पर कार्य करता है, तो इस धारणा को assert
के साथ सुरक्षित रखने की अनुशंसा की जाती है। यह assert
असफल होने का मतलब है कि आपकी धारणा सही नहीं है, जिसका अर्थ है कि आपका कोड सही नहीं है।
जीनरल, आपके कोड के बारे में आपके पास एक धारणा को सत्यापित करने के लिए जोर दिया गया है, यानी उस बिंदु पर, या तो जोर मिल गया है, या आपका कार्यान्वयन किसी भी तरह की छोटी है। एक अपवाद एक त्रुटि होने की उम्मीद है और इसे "गले लगाने" की उम्मीद है, यानी आप इसे संभालने की अनुमति देते हैं।
एक अच्छा उदाहरण स्थिरता के लिए एक समारोह के तर्कों जाँच कर रहा है:
def f(probability_vector, positive_number):
assert sum(probability_vector) == 1., "probability vectors have to sum to 1"
assert positive_number >= 0., "positive_number should be positive"
# body of function goes here
ऐसी चीजों की जांच करने के लिए जोर देने का उपयोग करते हैं जो कभी नहीं होना चाहिए। एक सैनिटी चेक की तरह।
एक और बात को एहसास है कि asserts जब अनुकूलित हटा दिया जाता है: जब अनुकूलन संकलन समय पर अनुरोध किया जाता है
वर्तमान कोड जनरेटर एक ज़ोर बयान के लिए कोई कोड उत्सर्जन करता है।
+1 यह इंगित करने के लिए कि यदि आप पाइथन को '-O' ध्वज के साथ आमंत्रित करते हैं तो उस आवेषण को हटा दिया जाता है।मुद्दा यह है कि यदि आप * अगर आप आवेषण लेते हैं तो आपका कोड अलग-अलग व्यवहार करने की अपेक्षा करता है तो आप उनका दुरुपयोग कर रहे हैं - वे केवल डीबगिंग के लिए हैं। –
- 1. सबक्लासिंग स्ट्रिंग का उदाहरण। पायथन में टेम्पलेट?
- 2. पायथन क्लोजर उदाहरण कोड
- 3. पायथन: उदाहरण विशेषता त्रुटि
- 4. संगठन मोड में रेखांकित उदाहरण उदाहरण
- 5. पायथन 3 http.server POST उदाहरण
- 6. हाइबरनेट: बेस क्लास का उदाहरण उदाहरण
- 7. Zend_Rest_Client के साथ Zend_Rest_Controller का उदाहरण उदाहरण?
- 8. क्या जावा में जोर देने का अच्छा अभ्यास है?
- 9. socket.io उदाहरण दोबारा उदाहरण
- 10. टीसीएल/उदाहरण उदाहरण?
- 11. पायथन: किसी अन्य वर्ग में कक्षा का उदाहरण बनाएं (सामान्य उदाहरण के साथ)
- 12. पायथन में बाध्य विधि का उदाहरण कैसे खोजें?
- 13. उदाहरण()
- 14. उदाहरण
- 15. उदाहरण
- 16. उदाहरण?
- 17. उदाहरण
- 18. उदाहरण
- 19. उदाहरण
- 20. Google डार्ट फॉर्म उदाहरण उदाहरण
- 21. जावा एपीआई में बिल्डर पैटर्न का उदाहरण?
- 22. गतिविधि का एकल उदाहरण
- 23. पॉलिमॉर्फिज्म का व्यावहारिक उदाहरण
- 24. सिंगलटन पैटर्न का उदाहरण
- 25. स्केल के लिए उदाहरण उदाहरण?
- 26. उदाहरण अवैध utf8 स्ट्रिंग उदाहरण?
- 27. नामित पाइप्स का उदाहरण
- 28. परीक्षण योजना का उदाहरण
- 29. जेनेरिक का उदाहरण जांचें?
- 30. उदाहरण के लिए पाइथन में गुणों का उपयोग उदाहरण के लिए सी #
दिलचस्प - मुझे नहीं पता था कि '0.'' 0.0' के लिए शॉर्टेंड था। प्रतिकृति कहती है कि यह हालांकि है। मैं इसे वास्तविक कोड में उपयोग नहीं कर सकता हूं क्योंकि यह अत्यधिक "चालाक" लगता है और आसानी से याद किया जाता है। एक टाइपो के रूप में समझा जा सकता है, लेकिन 0.0 हमेशा एक फ्लोट का मतलब समझा जाता है। – Daenyth
यह ऐसी परिस्थिति के समान लगता है जहां मेरे पास एक ऐसा फ़ंक्शन था जो 2 डी मैट्रिक्स से तत्व प्राप्त कर रहा था। यह जोर देने के लिए समझ में आया कि पंक्ति और कॉलम इनपुट वास्तव में मैट्रिक्स की सीमाओं में थे। लेकिन बाद में मैं कुछ कर रहा था जहां मैंने एक तत्व लिया और आसन्न तत्वों के साथ कुछ करना चाहता था। एक बार जब मैंने इसे कोडिंग करना शुरू किया, तो तत्व के किनारे पर होने पर मुझे विशेष मामले होने पड़ते थे, क्योंकि आसन्न तत्व मैट्रिक्स के बाहर थे। इसके बजाय अपवादों का उपयोग करना बेहतर लग रहा था। – Colin
अपवादों को कोड को संशोधित करना आसान कैसे होगा? जब आप फ़ंक्शन के व्यवहार को बदलते हैं, तो आपको अभी भी अपवाद बढ़ाने वाले भाग को संशोधित करना होगा, है ना? – pberkes