2024-06-16 11:23:44 发布
网友
有没有人在Python中使用类似的东西:
def die(error_message): raise Exception(error_message) ... check_something() or die('Incorrect data')
我认为这种风格在PHP和Perl中使用。
你觉得这种款式有什么优点吗?
很多很好的答案,但是还没有人提出用Python编写这个的明显方法:
assert check_something(), "Incorrect data"
只是要知道,如果你打开优化,它不会做检查,而不是任何人曾经做过。
好吧,首先,^{}更常见,如果你真的想要在PHP中找到与die等价的东西,你应该使用它,引发一个SystemExit错误,或者调用os._exit。
die
PHP中die方法的主要用途是,“脚本已经陷入了无法恢复的僵局”。它很少,如果有的话,用于生产代码。最好在被调用函数中引发异常,在父函数中捕获它,并找到一个优美的退出点——这是两种语言中的最佳方法。
虽然这种风格在PHP和Perl中很常见,但它非常不符合Python,我建议您不要这样编写Python。你应该遵循你所用语言的惯例,并写下如下内容:
if not check_something(): raise Exception('Incorrect data')
FWIW,使用“or die(…)”方式会给堆栈跟踪添加另一个级别,这是另一个小缺点。
很多很好的答案,但是还没有人提出用Python编写这个的明显方法:
只是要知道,如果你打开优化,它不会做检查,而不是任何人曾经做过。
好吧,首先,^{} 更常见,如果你真的想要在PHP中找到与
die
等价的东西,你应该使用它,引发一个SystemExit错误,或者调用os._exit。PHP中
die
方法的主要用途是,“脚本已经陷入了无法恢复的僵局”。它很少,如果有的话,用于生产代码。最好在被调用函数中引发异常,在父函数中捕获它,并找到一个优美的退出点——这是两种语言中的最佳方法。虽然这种风格在PHP和Perl中很常见,但它非常不符合Python,我建议您不要这样编写Python。你应该遵循你所用语言的惯例,并写下如下内容:
FWIW,使用“or die(…)”方式会给堆栈跟踪添加另一个级别,这是另一个小缺点。
相关问题 更多 >
编程相关推荐