क्या मुझे परीक्षण करना चाहिए कि ifकुछ वैध है या केवल tryइसे करना है और अपवाद को पकड़ना है?
- क्या कोई ठोस दस्तावेज यह कह रहा है कि एक तरह से पसंद किया जाता है?
- एक तरह से अधिक पायथोनिक है ?
उदाहरण के लिए, क्या मुझे:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
या:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
कुछ विचार ...
PEP 20 कहते हैं:
त्रुटियों को कभी भी चुपचाप नहीं गुजरना चाहिए।
जब तक स्पष्ट रूप से चुप नहीं कराया जाता।
क्या चुपचाप गुज़रने में त्रुटि के रूप में व्याख्या tryकरने के बजाय उपयोग करना चाहिए if? और यदि हां, तो क्या आप इसे इस तरह से उपयोग करके स्पष्ट रूप से चुप करा रहे हैं, इसलिए इसे ठीक बना रहे हैं?
मैं उन स्थितियों का उल्लेख नहीं कर रहा हूं जहां आप केवल 1 तरीके से काम कर सकते हैं; उदाहरण के लिए:
try:
import foo
except ImportError:
import baz
if index in mylistपरीक्षण wether सूचकांक mylist का एक तत्व है, संभव सूचकांक नहीं। आपif index < len(mylist)इसके बजाय चाहते हैं।