【发布时间】:2020-06-16 22:45:25
【问题描述】:
当我们有多个and 语句时,依赖表达式的顺序是一种好习惯吗?
更准确地说,我有一个字符串(该字符串有时可能是 None )并且根据它的长度我想要一些操作。以下是好代码吗?
import os
mystr = os.getenv('MYSTR_ENV_VAR')
if mystr and len(mystr)>10:
print('do sth')
else:
print('do sth else')
注意当mystr为None时,代码len(mystr)如果执行会抛出错误。因此,我依靠 if 语句首先确保 mystr 不为空或 None,然后评估长度。这段代码有效,如果它是安全的,逻辑适合我的需要。这是正确的 Pythonic 方式吗?
【问题讨论】:
-
你有答案告诉你它是安全的。有关这是否是好的做法的讨论,请参阅Short circuit evaluation, is it bad practice?
标签: python conditional-statements lazy-evaluation