存储不一致级别的字典

时间:2017-06-09 06:42:38

标签: python design-patterns

代码的结构如下:

def foo(dicc, cases):
    if cases==1:
        return dicc['a']
    if cases==2:
        return dicc['b']['c']

dicc不可更改。我想消除cases的类似开关的用法。我想在info={1:'a',2:'b'}之类的函数之外创建一个字典并调用dicc[info[cases]],但它不适用于案例2.这是否意味着我必须为每个案例创建一个类?处理这个问题的常见做法是什么?

1 个答案:

答案 0 :(得分:0)

不确定这是否是你想要的,但你可以尝试这个

info=[['a'], ['b', 'c']]

def foo(dicc, cases):
    result = dicc
    for k in info[cases-1]:
        result = result[k]
    return result