本文介绍了在if语句中依赖条件评估顺序是否安全?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当 my_var
可以是无?时,使用以下格式是不好的做法?
Is it bad practice to use the following format when my_var
can be None?
if my_var and 'something' in my_var:
#do something
问题是my_var 中的'something'会在my_var为None时抛出TypeError。
或者我应该使用:
if my_var:
if 'something' in my_var:
#do something
或
try:
if 'something' in my_var:
#do something
except TypeError:
pass
要重新解释这个问题,以上哪项是Python中的最佳做法(如果有的话)?
To rephrase the question, which of the above is the best practice in Python (if any)?
欢迎替代方案!
推荐答案
依赖于条件的顺序是安全的(),特别是因为你指出的问题 - 能够短路评估可能会导致一系列条件问题非常有用。
It's safe to depend on the order of conditionals (Python reference here), specifically because of the problem you point out - it's very useful to be able to short-circuit evaluation that could cause problems in a string of conditionals.
这种代码以大多数语言弹出:
This sort of code pops up in most languages:
IF exists(variable) AND variable.doSomething()
THEN ...
这篇关于在if语句中依赖条件评估顺序是否安全?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!