首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OmegaConf将插值节点作为字符串文本(无需计算)

OmegaConf将插值节点作为字符串文本(无需计算)
EN

Stack Overflow用户
提问于 2022-09-09 18:11:00
回答 1查看 75关注 0票数 1

对于OmegaConf,是否可以“关闭”节点内插,这样当您访问插值节点时,它只返回文字字符串,即"${resolver:value}",而不是计算插值值。

我有一个程序,它使用一些自定义内插的配置文件,但有时我想通过编程计算或比较这些配置文件,而不必担心插值(例如,它们可能对应于未设置的环境变量)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-10 03:03:39

可以使用内部API访问原始值:

代码语言:javascript
复制
c = OmegaConf.create({"a" :10, "b": "${a}"})
v = c._get_node("b")._value()
print(type(v), v)
# <class 'str'> ${a}

在您所描述的情况下(或者在某些自定义解析器无法解析时),比较信任是正确的:

代码语言:javascript
复制
c1 = OmegaConf.create({"e": "${oc.env:FOO}", "a": 1})
c2 = OmegaConf.create({"e": "${oc.env:FOO}", "a": 1})
print(c1 == c2)
# True
c2.a = 2
print(c1 == c2)
# False
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73666041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档