可以递归使用Python的束吗?

时间:2016-02-18 17:27:03

标签: python bunch

使用bunch,可以递归使用Bunch吗?

例如:

from bunch import Bunch
b = Bunch({'hello': {'world': 'foo'}})
b.hello
>>> {'world': 'foo'}

所以,显然:

b.hello.world
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-5-effaad77643b> in <module>()
----> 1 b.hello.world

AttributeError: 'dict' object has no attribute 'world'

我知道我能做到......

b = Bunch({'hello': Bunch({'world': 'foo'})})

......但那太糟糕了。

2 个答案:

答案 0 :(得分:2)

挖掘源代码,可以使用fromDict方法完成。

b = Bunch.fromDict({'hello': {'world': 'foo'}})
b.hello.world
>>> 'foo'

答案 1 :(得分:1)

Bunch.fromDict可以为你做这个魔术:

>>> d = {'hello': {'world': 'foo'}}
>>> b = Bunch.fromDict(d)
>>> b
Bunch(hello=Bunch(world='foo'))
>>> b.hello
Bunch(world='foo')
>>> b.hello.world
'foo'