Python:使用函数参数持久内存函数的策略?

标签 python functional-programming memoization object-persistence

我写了一个小类来持久地记住一些对随机网络进行各种统计分析的昂贵函数。

这些都是纯函数;所有数据都是不可变的。但是,一些函数将函数作为参数。

根据这些参数创建键是一个小问题,因为在 Python 中,函数对象相等等同于函数对象标识,它不会在 session 之间持续存在,即使函数实现没有改变也是如此。

我暂时通过使用函数名称作为字符串来解决这个问题,但是当开始考虑更改函数的实现或匿名函数等时,这会引发一系列问题。但我可能不是第一个担心此类事情的人。

有没有人有任何策略可以在 Python 中使用函数参数持久地内存函数?

最佳答案

一种选择是使用 marshal.dumps(function.func_code)

它将为函数的代码生成一个字符串表示。那应该处理不断变化的实现和匿名函数。

关于Python:使用函数参数持久内存函数的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354087/

相关文章:

python - Pandas - 使用 PostCoder 查找每行中的纬度和经度,然后在新列中返回邮政编码

python - 使用 itertools 进行递归函数应用

c - 每次执行指令时,如何编写一条指令将两个值切换到一个变量中?

haskell - 在 Haskell 中简化一个丑陋的函数

java - 斐波那契数列为负数

python - 在不同的 pandas 数据帧中找到调和平均值的有效函数

python - 在 SqlAlchemy 中由自动映射创建类后是否可以声明关系

python - 如何过滤数据帧的最后 8 小时?

python - 为什么记忆化在这段 Python 代码中不起作用?

reactjs - react 全局记忆化