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.getenv
是os.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
一个简单的包装。