字典类对象的属性访问
ya.dotdict的Python项目详细描述
又是一个多迪克特
为字典提供属性访问的Python库。 库提供以下类:
- ya.dotdict.DotDict替代dict和collections.defaultdict
- ya.dotdict.DotDictMixin:一个mixin类,可用于向任何dict类添加属性样式访问。 ya.dotdict.DotDict是根据这个mixin类实现的
所有代码示例假定:
>>> from ya.dotdict import *
简单用例:将字典项作为属性访问
DotDict可用作dict的替代品:
^{pr2}$删除属性也可以按预期工作:
>>> del d.spam >>> d.spam Traceback (most recent call last): ... AttributeError: spam
创建默认值(如collections.defaultdict)
DotDict可用作defaultict的替代品:
>>> d = DotDict(lambda: 'eggs') >>> d.spam 'eggs' >>> d.spam = 100 >>> d['spam'] 100 >>> d._default_factory = lambda: 'foo' >>> d.bar 'foo'
如果默认值factory接受参数,则向其传递键:
>>> d._default_factory = lambda key: [key, 1000] >>> d.foo ['foo', 1000]
如果默认值factory接受多个参数,则将引发TypeError:
>>> d._default_factory = lambda x, y: [x, y] Traceback (most recent call last): ... TypeError: defult_factory can only take zero or one argument
DotDictMixin
一个mixin类,提供对dict类类的属性访问。DotDict是使用DotDictMixin实现的,如下所示:
class DictClass(DotDictMixin, dict): pass
- 项目
标签: