के अंदर कैच ब्लॉक का प्रयास करें क्या लैम्ब्डा फ़ंक्शन के अंदर प्रयास पकड़ ब्लॉक का उपयोग करना संभव है। मुझे एक निश्चित चर को एक पूर्णांक में परिवर्तित करने के लिए लैम्ब्डा फ़ंक्शन की आवश्यकता है, लेकिन सभी मान पूर्णांक में परिवर्तित नहीं हो पाएंगे।पाइथन कोशिश करें लैम्बडा
उत्तर
नहीं। एक पायथन लैम्ब्डा केवल एक अभिव्यक्ति हो सकता है। नामित फ़ंक्शन का उपयोग करें।
यह परिवर्तित प्रकार के लिए एक सामान्य समारोह में लिखने के लिए सुविधाजनक है:
def tryconvert(value, default, *types):
for t in types:
try:
return t(value)
except ValueError, TypeError:
continue
return default
तो फिर आप अपने लैम्ब्डा लिख सकते हैं:
lambda v: tryconvert(v, 0, int)
तुम भी tryconvert()
तो यह रिटर्न एक समारोह लिख सकता है कि मान को परिवर्तित करने के लिए लेता है;
def tryconvert(default, *types):
def convert(value):
for t in types:
try:
return t(value)
except ValueError, TypeError:
continue
return default
return convert
अब tryconvert(0, int)
रिटर्न एक समारोह, convert(value)
, कि एक मूल्य लेता है और एक पूर्णांक में बदल देता है, और 0
लौटाता है यदि ऐसा नहीं किया जा सकता है: तो आप लैम्ब्डा जरूरत नहीं है।
इस विशिष्ट उदाहरण में, आप इस प्रकार का try
ब्लॉक का उपयोग करने से बचने कर सकते हैं:
lambda s: int(s) if s.isdigit() else 0
isdigit()
string method रिटर्न सच अगर सभीs
के वर्णों में अंक हैं। अपनी जरूरत पर निर्भर करता है (। आप ऋणात्मक संख्याओं को स्वीकार करने की जरूरत है, तो आप कुछ अतिरिक्त जाँच करना होगा)
, एक और तरीके का प्रयास करें रखने के लिए हो सकता है: लैम्ब्डा fn बाहर पकड़
toint = lambda x : int(x)
strval = ['3', '']
for s in strval:
try:
print 2 + toint(s)
except ValueError:
print 2
आउटपुट:
5
2
- 1. पाइथन यदि बनाम कोशिश करें-
- 2. लैम्बडा
- 3. कैसे दिखाएं कि क्यों "कोशिश करें" पाइथन
- 4. लैम्बडा
- 5. लैम्बडा
- 6. लैम्बडा अभिव्यक्ति
- 7. लैम्बडा फ़ंक्शन
- 8. जावा - अन्यथा छोड़कर पाइथन की कोशिश कैसे करें
- 9. कोशिश करें।
- 10. # लैम्बडा के साथ क्यों उपयोग करें?
- 11. लैम्बडा के साथ कैसे क्रमबद्ध करें?
- 12. मैं लैम्बडा अभिव्यक्ति
- 13. लैम्बडा फ़ंक्शन बाश
- 14. नेस्टेड कोशिश करें/पकड़ें
- 15. कैच की कोशिश करें
- 16. जावास्क्रिप्ट कोशिश करें/पकड़ें
- 17. कोशिश करें ... आखिरकार एमएसबिल्ड
- 18. पाइथन कोशिश/प्रवाह नियंत्रण के लिए अंत में
- 19. एकाधिक या एकल कोशिश करें
- 20. W3Schools कोशिश करें- यह संपादक
- 21. जावा में कोशिश करें/पकड़ें
- 22. कोशिश करें/पकड़ें और थ्रेडिंग
- 23. पाइथन लैम्बडा मानक कार्यों से अलग तरीके से लागू होते हैं?
- 24. लैम्बडा में रखे जाने से पहले अभिव्यक्ति का मूल्यांकन करें
- 25. लैम्बडा अभिव्यक्ति को सीधे ऑब्जेक्ट में कैसे परिवर्तित करें?
- 26. लैम्बडा स्वीकार करने वाले फ़ंक्शन को कैसे घोषित करें?
- 27. सी # थ्रेड-सुरक्षित नहीं होने पर पाइथन लैम्बडा अभिव्यक्ति क्यों कॉल कर रहा है?
- 28. लैम्बडा एक्सप्रेशन में घटनाक्रम - सी # कंपाइलर बग?
- 29. कोशिश करें ... सिवाय ... पाइथन 2.5 में त्रुटि के रूप में - पायथन 3.x
- 30. उन भाषाओं में को छोड़कर अंततः कोशिश करें या कोशिश करें-
http://stackoverflow.com/questions/7108193/frequently-repeated-try-except-in-python – squiguy
आप एक लैम्ब्डा समारोह _need_ नहीं है। बस इसके नाम पर एक नामित फ़ंक्शन का उपयोग करें –