【发布时间】:2021-06-05 00:20:37
【问题描述】:
我正在尝试用莳萝腌制功能。我想包含整个函数,而不仅仅是对它的引用。这是我的两个文件:
fun.py:
import dill
from foo import ppp
def qqq(me):
return me + 1
print(dill.dumps(ppp, protocol=4, recurse=True, byref=True))
print(dill.dumps(qqq, protocol=4, recurse=True, byref=True))
还有 foo.py
def qqq(me):
return me + 1
当我运行 fun.py 时,我得到以下输出:
b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00\x8c\x03foo\x94\x8c\x03ppp\x94\x93\x94.'
b'\x80\x04\x95\x90\x00\x00\x00\x00\x00\x00\x00\x8c\ndill._dill\x94\x8c\x10_create_function\x94\x93\x94(h\x00\x8c\n_load_type\x94\x93\x94\x8c\x08CodeType\x94\x85\x94R\x94(K\x01K\x00K\x01K\x02KCC\x08|\x00d\x01\x17\x00S\x00\x94NK\x01\x86\x94)\x8c\x02me\x94\x85\x94\x8c\x06fun.py\x94\x8c\x03qqq\x94K\x04C\x02\x00\x01\x94))t\x94R\x94}\x94h\rNN}\x94Nt\x94R\x94.'
我希望能够让输出的第一行和第二行更相似,并且在以后重新加载时实际上封装了函数而不需要上下文。有没有办法做到这一点?
非常感谢! 詹姆斯
【问题讨论】: