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 getenvrobi:
Pobierz zmienną środowiskową , zwróć, Nonejeś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, getenvjest to tylko otoka, environ.getale 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ć.