recognized not installed python environment-variables

python - not - Diferencia entre os.getenv y os.environ.get?



python variables windows (3)

¿Hay alguna diferencia en absoluto entre estos dos? ¿Cuándo debería usar uno sobre el otro? Es uno de estos obsoletos? Parecen tener la misma funcionalidad exacta.

>>> os.getenv(''TERM'') ''xterm'' >>> os.environ.get(''TERM'') ''xterm'' >>> os.getenv(''FOOBAR'', "not found") == "not found" True >>> os.environ.get(''FOOBAR'', "not found") == "not found" True


En Python 2.7 con iPython:

>>> import os >>> os.getenv?? Signature: os.getenv(key, default=None) Source: def getenv(key, default=None): """Get an environment variable, return None if it doesn''t exist. The optional second argument can specify an alternate default.""" return environ.get(key, default) File: ~/venv/lib/python2.7/os.py Type: function

Por lo tanto, podemos concluir que os.getenv es simplemente un simple contenedor alrededor de os.environ.get .


Una diferencia observada (Python27):

os.environ plantea una excepción si la variable ambiental no existe. os.getenv no os.getenv una excepción, pero devuelve None


Ver este hilo relacionado . Básicamente, os.environ se encuentra en la importación, y os.getenv es un contenedor para os.environ.get , al menos en CPython.

EDITAR: para responder a un comentario, en CPython, os.getenv es básicamente un acceso directo a os.environ.get ; ya que os.environ se carga en la importación de os , y solo entonces, lo mismo vale para os.getenv .