मैं पाइथन के लिए नया हूं, और मैं यह सुनिश्चित करना चाहता हूं कि मैं इसे सही तरीके से कर रहा हूं। अपवाद हमेशा है अगर -क्या मुझे पाइथन अपवाद के बाद रिटर्न स्टेटमेंट चाहिए?
def cmdType(self):
match = re.match(r'(<[ \w]+>),\s*(\d+)?,?\s*(\d+)?', cmd, re.IGNORECASE)
if match:
cmd_type = 'int_tool'
return cmd_type, match
match = re.match(r'LCD\(([^\)]*)\)?_?(RED|YELLOW|GREEN|TEAL|BLUE|VIOLET|OFF|ON|SELECT|LEFT|DOWN|RIGHT)?', cmd, re.IGNORECASE)
if match:
cmd_type = 'lcd'
return cmd_type, match
match = re.match(r'buffer(_read|_num|_line)(\((\w)\))?', cmd, re.IGNORECASE)
if match:
cmd_type = 'buffer'
return cmd_type, match
# ... More regex matches ...
raise UnknownCommandReceived("cmdType received an unknown command")
# unecessary return?
return 'None', None
मेरा प्रश्न है:
class UnknownCommandReceived(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
मैं इस समारोह के अंत में अपवाद बढ़ा देंगे कोई regexes मैच करता है, तो: मैं एक अपवाद वर्ग करना चाहते हैं उठाया, तो क्या मुझे समारोह के अंत में वापसी विवरण की आवश्यकता नहीं है? मेरी माफ़ी .. यह एक बहुत ही बुनियादी सवाल है। मेरी समझ यह है कि एक अपवाद उठाए जाने के बाद एक अपवाद, निष्पादन कभी भी कोड के उस बिंदु पर वापस नहीं आ जाएगा (जब तक कि यह एक लूप, या एक फ़ंक्शन जिसे दोबारा बुलाया जाता है)। यह सीधे पकड़ पर जायेगा और वहां से जारी रहेगा?
आपकी समझ सही है। –