सबसे पहले, मुझे नहीं पता कि मेरा दृष्टिकोण उचित है हूँ, इसलिए मैं सुझाव की एक किस्म के लिए खुला रहा हूँ।बार-बार दोहराया ट्राई/अजगर
तो कोशिश/छोड़कर बयान अक्सर कोड में दोहराया जाता है, तो उन्हें छोटा या पूरी तरह से उन्हें बाहर लेखन से बचने के लिए किसी भी अच्छे तरीके हैं?
try:
# Do similar thing
os.remove('/my/file')
except OSError, e:
# Same exception handing
pass
try:
# Do similar thing
os.chmod('/other/file', 0700)
except OSError, e:
#Same exception handling
pass
उदाहरण के लिए, एक पंक्ति कार्यों के लिए आप एक अपवाद हैंडलिंग आवरण निर्धारित कर सकते हैं और फिर एक लैम्ब्डा समारोह पारित:
def may_exist(func):
"Work with file which you are not sure if exists."""
try:
func()
except OSError, e:
# Same exception handling
pass
may_exist(lambda: os.remove('/my/file'))
may_exist(lambda: os.chmod('/other/file', 0700))
इस 'समाधान' सिर्फ बातें कम स्पष्ट कर देता है? क्या मुझे बस सभी प्रयासों को छोड़कर/बयान छोड़कर पूरी तरह लिखना चाहिए?
[अजगर?: कोशिश छोड़कर अभिव्यक्ति के रूप में] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/7088009/python-try-except-as -न-अभिव्यक्ति) – agf
मी और @kindall ने कल इस सवाल का जवाब बहुत अच्छी तरह से दिया। – agf
@agf: वह प्रश्न आंशिक रूप से संबंधित लगता है, लिंक करने के लिए धन्यवाद। हालांकि नेड बचेचेल्डर के जवाब का लाभ यह है कि कोड के ब्लॉक से कोई फ़ंक्शन बनाने की आवश्यकता नहीं है जिसके लिए अपवादों को पकड़ा जाना आवश्यक है। – sutre