os.environ在哪里初始化?

zjm*_*126 0 python initialization std

使用此代码,输出了许多键,但我预计没有输出:

import os

for i in os.environ:
    print  i
Run Code Online (Sandbox Code Playgroud)

这是os.py的代码:

try:
    environ
except NameError:
    environ = {}
Run Code Online (Sandbox Code Playgroud)

os.environ从哪里获取其价值?它在哪里初始化?

Ale*_*lli 7

os模块首先从特定于平台的子模块(例如_ntor _posix)导入所有名称,然后进行一些规范化.很明显,这个environ名称(代表系统环境)由特定于平台的子模块定义的(因为它通常是!!!),因此该except子句os.py没有触发,os.environ只是它通常应该是的丰富字典.