将Config类(继承Container
和Mapping
)的实例强制转换为OrderedDict
是否可以?我这样做了,它现在没有任何问题,但是我可以期待将来因为这样做而导致其他任何错误吗?
如果这不是一个好习惯,我怎么能只将类实例中的字典提取到OrderedDict
?
谢谢!
编辑:
这是我正在做的事情的简化版本:
from config import Config
from collections import OrderedDict
from itertools import product, izip
file_name = 'some-config-file.cfg'
my_cfg_dict = OrderedDict(Config(file(file_name)))
def my_product(dicts):
return (OrderedDict(izip(dicts, e))
for e in product(*dicts.itervalues()))
my_cfg_list = my_product(my_cfg_dict)
for e in my_cfg_list:
print e
其中some-config-file.cfg
如下所示:
param1: ['foo', 'bar', 'baz']
param2: ['FOO']
param3: [1, 5, 2]
我最终与my_cfg_list
合作。我选择Config
到OrderedDict
的实例选择投票(再次,请原谅我使用错误的词)的原因是因为它可以与my_product一起使用。正如您所见,它现在没有给我错误,行为也符合预期。我想知道它是否会在稍后阶段导致错误,并且是否有更优雅的方式。
我希望这更能澄清我的问题。如果需要更多信息,请告诉我。谢谢!