跳转到主要内容

你是否曾经需要深入转换一个`任何Python对象`?那么这个就是为你准备的。=]

项目描述

https://travis-ci.cn/filwaitman/pyrecursive.svg?branch=master https://codecov.io/gh/filwaitman/pyrecursive/branch/master/graph/badge.svg

pyrecursive

你是否曾经需要深入转换一个任何Python对象?那么这个就是为你准备的。=]

安装

pip install pyrecursive

使用

from pyrecursive import pyrecursive

def double(obj):
    return x * 2

pyrecursive(42, double)
# result: 84

pyrecursive([1, 2, 3, [4, 5, [6], 7], 8, 9, 'x'], double)
# result: [2, 4, 6, [8, 10, [12], 14], 16, 18, 'xx']

pyrecursive({'hamster': [1, 2, 3, {'test': 42}]}, double)
# result: {'hamster': [2, 4, 6, {'test': 84}]}

# In order to transform dict keys in depth: set transform_dict_keys variable to True (default: False).
pyrecursive({'hamster': [1, 2, 3, {'test': 42}]}, double, transform_dict_keys=True)
# result: {'hamsterhamster': [2, 4, 6, {'testtest': 84}]}

# In order not to transform dict values in depth: set transform_dict_values variable to False (default: True).
pyrecursive({'hamster': [1, 2, 3, {'test': 42}]}, double, transform_dict_values=False)
# result: {'hamster': [2, 4, 6, {'test': 42}]}

# In order to define custom rules for each object type in depth: set custom_rules variable.
pyrecursive([1, 2, 3, 'banana'], double, custom_rules={int: lambda x: x * 5})
# result: [5, 10, 15, 'bananabanana'] (multiplied by 5 when int, multiplied by 2 otherwise)

贡献

你是否想到了一些有趣的功能,或者你发现了一个错误?请让我知道!

当然,你也可以下载项目并给我一些拉取请求。请注意,(1) 我们遵循pep8,(2) 我们的行长度为120个字符,(3) 你的更改必须与Python 2.7和Python 3.6+兼容。

你可以通过打开问题来发送你的建议。

你也可以直接联系我。查看我的联系信息http://filwaitman.github.io/(首选电子邮件而不是手机)。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源代码分发

pyrecursive-0.0.2.tar.gz (4.2 kB 查看哈希值)

上传于 源代码

构建分发

pyrecursive-0.0.2-py3-none-any.whl (3.6 kB 查看哈希)

上传于 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面