Використовуйте перший; він безпосередньо намагається перевірити, чи визначено щось у 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")якщо ви насправді хочете зробити щось із значенням, яке ви могли б отримати.