Python:使用函数参数持久记忆函数的策略?

Gab*_*ell 5 python functional-programming memoization object-persistence

我写了一个小课程来持续记住一些昂贵的函数,这些函数对随机网络进行各种统计分析.

这些都是纯粹的功能; 所有数据都是不可变的.但是,某些函数将函数作为参数.

基于这些参数创建密钥是一个小问题,因为在Python中,函数对象相等等同于函数对象标识,即使函数实现没有改变,它也不会在会话之间保持不变.

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

有没有人有任何策略在Python中持久记忆函数参数的函数?

tob*_*ies 2

看看使用 this 作为函数的标识

[getattr(func.__code__,s) 
 for s in ['co_argcount', 'co_cellvars', 'co_code', 'co_consts', 
           'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars',
           'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize',
           'co_varnames']
]
Run Code Online (Sandbox Code Playgroud)

应该正确处理以任何方式改变实施......