【发布时间】:2023-03-25 15:00:02
【问题描述】:
我想在我的配置字典中有一堆生成器。所以我尝试了这个:
@yaml.register_class
class UniformDistribution:
yaml_tag = '!uniform'
@classmethod
def from_yaml(cls, a, node):
for x in node.value:
if x[0].value == 'min':
min_ = float(x[1].value)
if x[0].value == 'max':
max_ = float(x[1].value)
def f():
while True:
yield np.random.uniform(min_, max_)
g = f()
return g
但是,解析器永远不会返回,因为生成器在内部用于解析引用,例如 &A 和 *A。因此,返回(g,) 之类的方法是一个相当简单的解决方法,但我更喜欢这样的解决方案,我不需要next(config['position_generator'][0]) 中额外且非常混乱的索引0 术语。
有什么想法吗?
【问题讨论】:
标签: ruamel.yaml