bod*_*ydo 2 python templates mako
每当我将复杂的数据结构传递给Mako时,很难迭代它.例如,我传递了list的dict dict,并且要在Mako中访问它,我必须做类似的事情:
% for item in dict1['dict2']['list']: ... %endfor
我想知道Mako是否有一些机制可以[]用简单的替换用法来访问字典元素.?
然后我可以将上面的行写成:
% for item in dict1.dict2.list: ... %endfor
哪个更好,不是吗?
谢谢,Boda Cydo.
简化Łukasz的例子:
class Bunch:
def __init__(self, d):
for k, v in d.items():
if isinstance(v, dict):
v = Bunch(v)
self.__dict__[k] = v
print Bunch({'a':1, 'b':{'foo':2}}).b.foo
Run Code Online (Sandbox Code Playgroud)
另见:http: //code.activestate.com/recipes/52308-the-simple-but-handy-collector-of-a-bunch-of-named/