是否有人在Python中使用这样的东西:
def die(error_message):
raise Exception(error_message)
...
check_something() or die('Incorrect data')
Run Code Online (Sandbox Code Playgroud)
我认为这种风格在PHP和Perl中使用.
你觉得这个[风格]有什么(dis)优势吗?
cwa*_*ole 70
嗯,首先,sys.exit([arg])
更常见,如果你真的想要die
在PHP中等效的东西,你应该使用它,引发SystemExit错误,或者调用os._exit.
die
PHP 中该方法的主要用途是,"脚本已经达到了一些无法从中恢复的僵局".很少(如果有的话)用于生产代码.您是关在一个调用的函数抛出一个异常,在父捕获它,并找到一个体面退出好点-这是在两种语言的最佳途径.
Dun*_*can 37
很多很好的答案,但没有人提出用Python编写这个的明显方法:
assert check_something(), "Incorrect data"
Run Code Online (Sandbox Code Playgroud)
请注意,如果您打开优化,它将不会进行检查,而不是任何人都做过.
Kei*_*ens 18
虽然这种风格在PHP和Perl中很常见,但它非常不具有Pythonic,我鼓励你不要用这种方式编写Python.您应该遵循您正在使用的语言的约定,并写下这样的内容:
if not check_something():
raise Exception('Incorrect data')
Run Code Online (Sandbox Code Playgroud)
FWIW,执行"或死(...)"方式会增加堆栈跟踪的另一个级别,这是另一个小缺点.
归档时间: |
|
查看次数: |
76657 次 |
最近记录: |