if-else与环境变量

我希望有一个if-else结构来检查是否存在环境变量,例如:

if "ENV_VAR" in os.environ:
    if os.environ["ENV_VAR"] == "one":
        do_something()
    else:
        do_something_else()
else:
    do_something_else()

有没有更好的方法来编写代码,特别是避免编写两次对“ do_something_else()”的调用?

评论
  • raut
    raut 回复

    You can just do this, using os.getenv:

    if os.getenv("ENV_VAR") == "one":
        do_something()
    else:
        do_something_else()
    
  • 时间淡一切
    时间淡一切 回复

    With dictionaries you can also use .get to provide a default value if the key is not present. In this case you could return an empty string to compare, or the actual value if successfully retrieved.

    if os.environ.get('ENV_VAR', '') == 'one':
        do_something()
    else:
        do_something_else()
    
  • miguel
    miguel 回复

    如果ENV_VAR不存在,则可以使用os.environ.get,它将默认为None且不通过if条件。

    if os.environ.get("ENV_VAR") == "one":
        do_something()
    else:
        do_something_else()