Użyj pierwszego; bezpośrednio próbuje sprawdzić, czy coś jest zdefiniowane w environ
. Chociaż druga forma działa równie dobrze, brakuje jej semantycznie, ponieważ odzyskujesz wartość, jeśli istnieje, i używasz jej tylko do porównania.
Starasz się zobaczyć, czy coś jest obecny w environ
, dlaczego chcesz się po prostu go porównać, a następnie wrzucić go z dala ?
Dokładnie to getenv
robi:
Pobierz zmienną środowiskową , zwróć, None
jeśli nie istnieje. Opcjonalny drugi argument może określać alternatywną wartość domyślną.
(oznacza to również, że Twój czek może być po prostu if getenv("FOO")
)
nie chcesz tego dostać , chcesz sprawdzić, czy istnieje.
Tak czy inaczej, getenv
jest to tylko otoka, environ.get
ale nie widać osób sprawdzających członkostwo w mapowaniach za pomocą:
from os import environ
if environ.get('Foo') is not None:
Podsumowując, użyj:
if "FOO" in os.environ:
pass
jeśli chcesz tylko sprawdzić, czy istnieje, podczas gdy, użyj, getenv("FOO")
jeśli rzeczywiście chcesz zrobić coś z wartością, którą możesz uzyskać.