os.environ.get第二个参数作用是什么?该写法是否会设置环境变量?
os.environ.get()用法答疑
你遇到的代码:
OWNER_ID = os.environ.get("OWNER_ID", "29")
第二个参数"29"的作用
os.environ是Python中用于访问系统环境变量的类字典对象,它的get方法和普通Python字典的get行为完全一致:
- 仅传入1个参数时:如果目标环境变量存在就返回对应值,不存在则返回
None - 第二个参数是默认 fallback 值:如果当前运行环境中没有配置
OWNER_ID这个环境变量,get方法不会返回None,而是直接返回你传入的第二个参数"29",赋值给代码中的OWNER_ID变量。
这种写法的优势是可以避免环境变量缺失时的报错:如果你直接用os.environ["OWNER_ID"]取值,当OWNER_ID不存在时会直接抛出KeyError,而带默认值的get写法不需要额外做异常捕获或者存在性判断,更简洁。
该写法是否会设置系统环境变量
不会。os.environ.get()是纯只读的取值方法,仅会读取现有环境变量的内容,不会对系统环境变量做任何写入、修改操作。如果需要主动设置环境变量,需要使用os.environ["OWNER_ID"] = "xxx"或者os.putenv()这类写入接口。
内容的提问来源于stack exchange,提问作者Luqman
相关产品推荐
相关产品推荐

