我写了一个小类来持久地记住一些对随机网络进行各种统计分析的昂贵函数。
这些都是纯函数;所有数据都是不可变的。但是,一些函数将函数作为参数。
根据这些参数创建键是一个小问题,因为在 Python 中,函数对象相等等同于函数对象标识,它不会在 session 之间持续存在,即使函数实现没有改变也是如此。
我暂时通过使用函数名称作为字符串来解决这个问题,但是当开始考虑更改函数的实现或匿名函数等时,这会引发一系列问题。但我可能不是第一个担心此类事情的人。
有没有人有任何策略可以在 Python 中使用函数参数持久地内存函数?
最佳答案
一种选择是使用 marshal.dumps(function.func_code)
它将为函数的代码生成一个字符串表示。那应该处理不断变化的实现和匿名函数。
关于Python:使用函数参数持久内存函数的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354087/