我想检查我的环境是否存在变量,例如 "FOO"
,在 Python 中。为此,我正在使用 os
标准库。阅读图书馆的文档后,我找到了两种实现目标的方法:
方法一:
if "FOO" in os.environ:
pass
方法二:
if os.getenv("FOO") is not None:
pass
我想知道哪种方法(如果有的话)是好的/首选条件以及原因。
原文由 Kshitij Saraogi 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用第一个;它直接尝试检查
environ
中是否定义了某些内容。尽管第二种形式同样有效,但它在语义上有所欠缺,因为如果它存在,你会得到一个值,并且 只 将它用于比较。你试图查看
environ
中 是否存在某些东西,为什么 你 只是比较它然后 _把它扔掉_?这正是
getenv
所做的:(这也意味着您的支票可能只是
if getenv("FOO")
)你不想 _得到它_,你想检查它是否存在。
无论哪种方式,
getenv
只是environ.get
的包装,但你看不到人们检查映射中的成员身份:总结一下,使用:
如果你 只是 想检查是否存在,而,使用
getenv("FOO")
如果你真的想用你可能得到的值做某事。