【发布时间】:2016-02-10 14:24:46
【问题描述】:
是否有 Python 的库或类似于 lodash 的东西?我们在 API 上广泛使用该库,并且在继续创建一系列 Python 工作者时,创建与我们的 API 句法类似的结构是有意义的。
【问题讨论】:
-
使用库会以何种方式改进您的工作流程,其中包含使用生成器、推导式、functools(映射、过滤器、reduce 等)和 lambdas 的数组、列表、集合和字典?我知道想要一个与您已经使用的工具类似的工具,但是当您充分使用 Python 时,该功能已经存在。虽然到目前为止链接的两个模块(pytoolz 和 pydash)都涵盖了 lodash/underscore 的仿真,但它们实际上只是基本 python 功能的装饰;理解语言比修改你知道的东西更好。
-
我同意,但我们只是让我们的 NodeJS 团队更容易进入我们的 Python 项目。 Python 开发人员理解这些库的作用比 NodeJS 开发人员学习 Python 要容易得多。我希望弥合这一差距并缩短学习曲线。与大多数开发人员一样,在某些时候好奇心会占据上风,我们的 NodeJS 开发人员可能想了解幕后发生的事情。
-
这里有一个例子: _.get(w, 'x.y.z') 在 python 中如果你执行 w.x.y.z 如果 w、x 或 y 为空,则会抛出异常。使用 _.get 你只会得到一个空值
-
@JeffLangemeier 我不同意。 pydash(和 lodash)提供了开发人员最需要/最常用的辅助函数。的确,其中一些很容易用普通的 Python 编写,但很多不是。如果您处于一个位置:使用 pydash 与自己编写辅助函数,那么您应该考虑到 pydash 函数已经过测试、优化并与 Python2.7&3 兼容,更不用说它已经编写好了。在我的工作中,我需要满足上述所有标准,使用 pydash/lodash 可以为我节省大量时间。作为奖励,我阅读了 pydash 代码来改进我的 python。
-
@m4js7er 既然你愿意删除我一年前的回复;您是否还愿意提供通过 pydash 提供的“难以优化”的 lambda/函数式编程范例的具体示例?我的观点仍然存在,JS 和 Python 是不同的语言,具有不同的范式和不同的应用程序......从 JS 中获取一些东西并尝试将其批量移植到 Python 可能会由于语言的差异而给用户带来意想不到的结果。