我对python还比较陌生,我想确保我做的正确。我想要一个例外类:
class UnknownCommandReceived(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
如果没有匹配的正则表达式,我将在函数末尾引发异常:
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
我的问题是——如果总是引发异常,那么在函数的末尾是否不需要返回语句?我的道歉。。这是一个非常基本的问题。我的理解是,异常一旦引发,执行就永远不会返回到代码的那一点(除非它是一个循环,或者是一个被再次调用的函数)。它会直接到达终点然后从那里继续?
不,你没有。无法访问
return
语句。此外,静态分析工具(如
pyflakes
)也会将其报告为错误。相关问题 更多 >
编程相关推荐