超可变数的集合

supermutes的Python项目详细描述


这个库适用于Python2.6、2.7和3.2。

它定义了三种可变表。

dot模块包含允许使用点表示法的类 访问listdict对象时。

例如:

>>  from supermutes.dot import dotify
>>  d = dotify({'a':[1, 2, 3, 4, 5], 'b': {'c': 5}})
>>  d.a._0
1
>>  d.b.c
5
>>  d.c = {'f': 9}
>>  d.c.f
9

只读

readonly模块包含转换dict和^{tt2}的类$ 对象转换为不能对其进行任何值更改的对象。

例如:

>>  from supermutes.readonly import readonly
>>  r = readonly({'a':[1, 2, 3, 4, 5], 'b': {'c': 5}})
>>  r
{'a': [1, 2, 3, 4, 5], 'b': {'c': 5}}
>>  r['a'].append(5)
supermutes.readonly.ReadOnlyClassException: Cannot write to object.
>> r['b']['d'] = 6
supermutes.readonly.ReadOnlyClassException: Cannot write to object.

decorator函数也可用于只读对象。会的 readonly fy修饰函数/方法的输出

例如:

from supermutes.decorators import return_readonly

@return_readonly
def get_list():
    return ['12']

orderedDefaultDict

ordered模块包含OrderedDefaultDict类。它是一个 要成为OrderedDictdefaultdict来自python标准库。

创建子类

当任何超人的子类被声明时,该类将是 设置为递归更改数据集的事实类。

若要将类重置回原始集,请使用reset_mapping方法 在模块内部

例如:

>>> from supermutes.dot import DotDict, DotList, reset_mapping
>>> class MySubClass(DotDict): pass
>>> d = MySubClass({'a': {'b': {'c': 3}}})
>>> d.a.b
{'c': 3}
>>> d.a.b.__class__
<class '__main__.MySubClass'>
>>> f = DotList([1, {}])
>>> f[1].__class__
<class '__main__.MySubClass'>
>>> reset_mapping()
>>> f = DotList([1, {}])
>>> f[1].__class__
<class 'supermutes.dot.DotDict'>

自己写Supermutable

如果你想贡献,写一个表现在 特别时尚,请遵循以下指导原则:

  • It should inherit from the mutable type that it is adapting (eg ^{tt3}$ ^{tt2}$ etc.)
  • It should also inherit from ^{tt15}$. This takes care of all of the registering of any subclasses so that for example, all sub dicts added to the SuperMutable are changed accordingly. See example.py for a working sample.

建筑

复制回购协议后:

$ pip install -r test-requirements.txt
$ nosetests

supermuteshttp://travis-ci.org/alexcouper/supermutes有一个生成作业

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从XML文本中提取数据   使用JAVA在“Bixolon热敏打印机”上打印,“未找到页面!”错误   Java8流:每个流   java如何使用JRootPane修改JFrame?   如何在java中获取出错的行号?   为什么JavaCompiler在实例化Java类时速度很慢?   Java Swing计时器类中可能存在的错误   从抽象类返回Java上的泛型对象   java流式传输来自JAXRS响应的pdf文件:url的“401:Unauthorized”   java呈现线性布局似乎很慢   如何使用java将具有重叠的多个分割图像合并回原始图像?   java使用DatagramPacket从一个客户端向另一个客户端发送数据   linux如何使用java代码中运行的Service statusall | grep获取结果我的代码没有给出结果?   使用Java ZipFile类解压缩ZIP文件   java Elasticsearch集成测试和springtest不能很好地协同工作AccessControlException   一种增强java集合的区间树生成算法   在JDK之外使用附加API的兼容性