在Python中将Config类转换为OrderedDict

时间:2015-02-23 08:51:51

标签: python casting ordereddictionary

Config类(继承ContainerMapping)的实例强制转换为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合作。我选择ConfigOrderedDict的实例选择投票(再次,请原谅我使用错误的词)的原因是因为它可以与my_product一起使用。正如您所见,它现在没有给我错误,行为也符合预期。我想知道它是否会在稍后阶段导致错误,并且是否有更优雅的方式。

我希望这更能澄清我的问题。如果需要更多信息,请告诉我。谢谢!

0 个答案:

没有答案