Використовуйте перший; він безпосередньо намагається перевірити, чи визначено щось у environ
. Хоча друга форма працює однаково добре, вона не вистачає семантично, оскільки ви отримуєте значення назад, якщо воно існує, і використовуєте його лише для порівняння.
Ви намагаєтеся зрозуміти, чи є щось у цьому environ
, чому б вам вдалося просто порівняти його, а потім відкинути ?
Саме це і getenv
робить:
Отримайте змінну середовища , поверніться, None
якщо її не існує. Необов'язковий другий аргумент може вказати альтернативний за замовчуванням.
(це також означає, що ваш чек може бути просто 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")
якщо ви насправді хочете зробити щось із значенням, яке ви могли б отримати.