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

新手上路,请多包涵

两种方法之间有什么区别吗?

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

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

原文由 André Staltz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

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

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

原文由 W. Conrad Walden 发布,翻译遵循 CC BY-SA 3.0 许可协议

getenv()environ[] 之间的一个区别(在 Python 2.7 和 3.8 中观察到):

  • os.getenv() 不引发异常,但返回 None
  • os.environ.get() 同样返回 None
  • os.environ[] 如果环境变量不存在则引发异常

原文由 giwyni 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题