具有全局上下文的python腌制

时间:2018-08-07 14:11:17

标签: python-2.7 function pickle

我正在尝试使某些具有全局依赖性的函数(类似于此问题:How to pickle a python function with its dependencies?)腌制。

这就是我所拥有的:

import cloud, pickle

# define function to multiply some numbers
N = 2
def multiply_number(x):
    return x*N

# rename function and pickle 
multiply_number.__name__ = "double_number" 
fn = cloud.serialization.cloudpickle.dumps(multiply_number)

del multiply_number 
del N 

loaded = cloud.serialization.cloudpickle.loads(fn)
loaded(5)  # returns 10
loaded.__globals__['N']  # returns 2 

loaded.__name__   ## returns multiply_number .. 

我相信loaded.__name__返回multiply_number是因为co_name属性是只读的,尽管我尝试将函数的新名称分配为double_number,但这在某种程度上不会不能在泡菜中坚持。

是否有任何方法可以在已加载的泡菜中的任何位置访问“新分配的”名称double_number

0 个答案:

没有答案