我想检查我的环境中是否存在 Python 中的变量,例如 "FOO"
。为此,我使用了 os
标准库。在阅读了图书馆的文档后,我想出了两种方法来实现我的目标:
方法一:
if "FOO" in os.environ:
pass
方法二:
if os.getenv("FOO") is not None:
pass
我想知道哪种方法(如果有的话)是一个好的/首选条件以及为什么。
最佳答案
使用第一个;它直接尝试检查是否在 environ
中定义了某些内容。尽管第二种形式同样有效,但它缺乏语义,因为如果它存在,您会返回一个值,并且仅使用它进行比较。
您正在尝试查看是否存在某些东西 in environ
,为什么您要 get 只是为了比较它然后 扔掉它?
这正是 getenv
所做的:
Get an environment variable, return
None
if it doesn't exist. The optional second argument can specify an alternate default.
(这也意味着您的检查可能只是 if getenv("FOO")
)
你不想得到它,你想检查它是否存在。
无论哪种方式,getenv
只是 environ.get
的一个包装器,但您看不到人们检查映射中的成员资格:
from os import environ
if environ.get('Foo') is not None:
总而言之,使用:
if "FOO" in os.environ:
pass
如果你只是想检查是否存在,而如果你真的想用你可能得到的值做某事,请使用 getenv("FOO")
。
关于python - 检查环境变量是否存在的好习惯是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40697845/