os.getenv 和 os.environ.get 的区别

2022-01-16 00:00:00 python environment-variables python-os

问题描述

这两种方法有什么区别吗?

Is there any difference at all between both approaches?

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

它们似乎具有完全相同的功能.

They seem to have the exact same functionality.


解决方案

参见 此相关线程.基本上,os.environ 是在导入时找到的,而 os.getenvos.environ.get 的包装器,至少在 CPython 中是这样.

See this related thread. Basically, os.environ is found on import, and os.getenv is a wrapper to os.environ.get, at least in CPython.

为了回复评论,在 CPython 中,os.getenv 基本上是 os.environ.get 的快捷方式;因为 os.environ 是在 os 的导入时加载的,只有这样,同样适用于os.getenv.

To respond to a comment, in CPython, os.getenv is basically a shortcut to os.environ.get ; since os.environ is loaded at import of os, and only then, the same holds for os.getenv.

相关文章