字典作为一个对象,可以有不同的视图
Thing的Python项目详细描述
字典作为对象,可以有不同的字典视图!
安装
$ pip install thingy
示例
字典作为对象…
>>>classMyThingy(Thingy)...@property...deffoobaz(self):...returnself.foo+self.baz>>>thingy=MyThingy({"foo":"bar","baz":"qux"})>>>thingy.foo"bar">>>thingy.foobaz"barqux">>>thingy.foo="BARRRR">>>thingy.view(){"foo":"BARRRR","baz":"qux"}
…可以有不同的字典视图!
>>>MyThingy.add_view(name="fooz",include=["foo","foobaz"])>>>MyThingy.add_view(name="no_foo",defaults=True,exclude="foo")>>>thingy=MyThingy({"foo":"bar","baz":"qux"})>>>thingy.view("fooz"){"foo":"bar","foobaz":"barqux"}>>>thingy.view("no_foo"){"baz":"qux"}
为什么这样?
因为写foo.bar比写foo["bar"]有趣得多。
thingy主要用于其他库中提供抽象 over字典,这对于编写orms或类似的实用程序很有用。
Thingy的视图系统也特别有用 操作字典,并经常将这些字典限制为一些多余的 项目。
测试
运行测试:
- 使用pip install -r requirements.txt; 安装开发人员需求
- 运行pytest。
许可证
麻省理工学院