os.getenv和os.environ.get之间的区别?

这两者之间有什么不同吗? 我应该什么时候使用一个? 其中之一是否被弃用? 他们似乎有完全相同的function。

>>> 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 

一个差异观察(Python27):

如果环境variables不存在, os.environ会引发exception。 os.getenv不会引发exception,但会返回None

看到这个相关的线程 。 基本上, os.environ是在导入时find的,而os.getenvos.environ.get的包装,至less在CPython中是这样。

编辑:为了响应评论,在CPython中, os.getenv基本上是os.environ.get一个快捷方式; 因为os.environ是在os导入时加载的,只有这样, os.getenv

在Python 2.7中使用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 

所以我们可以得出结论os.getenv只是os.environ.get一个简单的包装。