F.D*_*.F. 23 python conditional exception raise zen-of-python
遵循"武士原则",我试图在我的功能上做这个,但似乎是错的......
return <value> if <bool> else raise <exception>
Run Code Online (Sandbox Code Playgroud)
有没有其他"美丽"的方式来做到这一点?谢谢
Dan*_*man 20
内联/三元if是一种表达,而不是一种陈述.你的尝试意味着"如果bool,返回值,否则返回结果raise expression" - 这当然是胡说八道,因为raise exception它本身就是一个陈述而不是一个表达.
内联无法做到这一点,你不应该这样做.明确地做:
if not bool:
raise MyException
return value
Run Code Online (Sandbox Code Playgroud)
glg*_*lgl 15
如果你绝对想要raise表达,你可以做到
def raiser(ex): raise ex
return <value> if <bool> else raiser(<exception>)
Run Code Online (Sandbox Code Playgroud)
这种"尝试"返回的返回值raiser(),这将是None,如果没有无条件raise的功能.
| 归档时间: |
|
| 查看次数: |
11136 次 |
| 最近记录: |