if-else с переменными среды - PullRequest
1 голос
/ 24 апреля 2020

Я хотел бы иметь структуру 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 ()"?

Ответы [ 3 ]

2 голосов
/ 24 апреля 2020

Вы можете просто сделать это, используя os.getenv:

if os.getenv("ENV_VAR") == "one":
    do_something()
else:
    do_something_else()
1 голос
/ 24 апреля 2020

Вы можете использовать os.environ.get, если ENV_VAR не существует, по умолчанию будет None и не пройдет условие if.

if os.environ.get("ENV_VAR") == "one":
    do_something()
else:
    do_something_else()
1 голос
/ 24 апреля 2020

С помощью словарей вы также можете использовать .get для предоставления значения по умолчанию, если ключ отсутствует. В этом случае вы можете вернуть пустую строку для сравнения или фактическое значение при успешном получении.

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