有没有人在Python中使用这样的东西:
def die(error_message):
raise Exception(error_message)
...
check_something() or die('Incorrect data')我认为PHP和Perl中使用了这种风格。
你觉得这种风格有什么(不)优点吗?
发布于 2011-07-17 14:19:50
首先,sys.exit([arg])更常见,如果您真的想要在PHP中使用与die等效的东西,那么应该使用它,引发SystemExit错误,或者调用os._exit。
die方法在PHP中的主要用法是,“脚本陷入了某种僵局,无法从中恢复”。它很少在生产代码中使用。您最好在调用的函数中引发异常,在父函数中捕获它,并找到一个优雅的退出点--这是两种语言中的最佳方法。
发布于 2011-07-17 17:01:31
有很多好的答案,但还没有人建议用Python编写以下代码的明显方法:
assert check_something(), "Incorrect data"请注意,如果您打开优化,它将不会进行检查,而不是任何人都会这样做。
发布于 2011-07-17 14:14:13
虽然这种风格在PHP和Perl中很常见,但它非常不像Python,我建议您不要以这种方式编写Python。您应该遵循您正在使用的语言的约定,并编写类似以下内容:
if not check_something():
raise Exception('Incorrect data')FWIW,做“或死(...)”way向堆栈跟踪添加了另一个级别,这是另一个小缺点。
https://stackoverflow.com/questions/6722210
复制相似问题