Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中pickle函数?_Python_Pickle - Fatal编程技术网

如何在Python中pickle函数?

如何在Python中pickle函数?,python,pickle,Python,Pickle,我定义了一个简单的函数并对其进行了pickle 但是当我在另一个文件中反序列化它时 我无法把它装回去 我得到一个错误,这里是一个例子: import pickle def fnc(c=0): a = 1 b = 2 return a,b,c f = open('example', 'ab') pickle.dump(fnc, f) f.close() f = open('example', 'rb') fnc = pickle.load(f) print(f

我定义了一个简单的函数并对其进行了pickle 但是当我在另一个文件中反序列化它时 我无法把它装回去

我得到一个错误,这里是一个例子:

import pickle 

def fnc(c=0):
    a = 1
    b = 2
    return a,b,c

f = open('example', 'ab')

pickle.dump(fnc, f)
f.close()

f = open('example', 'rb')

fnc = pickle.load(f)

print(fnc)
print(fnc())
print(fnc(1))

(1, 2, 0)
(1, 2, 1)
以下是一个示例:

import pickle 

def fnc(c=0):
    a = 1
    b = 2
    return a,b,c

f = open('example', 'ab')

pickle.dump(fnc, f)
f.close()

f = open('example', 'rb')

fnc = pickle.load(f)

print(fnc)
print(fnc())
print(fnc(1))

(1, 2, 0)
(1, 2, 1)

您也可以使用
搁置
模块来完成。我相信它仍然使用pickle来存储数据,但它非常方便的特点是可以以键值对的形式存储数据。例如,如果存储一个ML模型,则可以将训练数据和/或要素列名与模型本身一起存储,从而使其更加方便

导入搁置
def func(a、b):
返回a+b
#现在存储函数
将shelve.open('foo.shlv','w')作为shlv:
shlv['function']=func
#负荷函数
将shelve.open('foo.shlv','r')作为shlv:
x=shlv[“功能”]
印刷品(x(2,3))

您也可以使用
搁置
模块来完成。我相信它仍然使用pickle来存储数据,但它非常方便的特点是可以以键值对的形式存储数据。例如,如果存储一个ML模型,则可以将训练数据和/或要素列名与模型本身一起存储,从而使其更加方便

导入搁置
def func(a、b):
返回a+b
#现在存储函数
将shelve.open('foo.shlv','w')作为shlv:
shlv['function']=func
#负荷函数
将shelve.open('foo.shlv','r')作为shlv:
x=shlv[“功能”]
印刷品(x(2,3))

请输入相关代码。您的错误消息是什么?您应该编写自己编写的代码,我们无法理解您对该问题的理解程度。当然你应该写错误详细信息。请写相关代码。你的错误信息是什么?你应该写你写的代码,我们不知道你对这个问题了解多少。当然,你应该写下错误的详细信息。@如果你有具体的错误,请与拉尔瓦尼会面,让我知道!从pickle文件加载函数后,必须关闭file对象!!我认为这是一个简单而聪明的方法来解决这个问题!!我是否仍要在新文件中定义函数(请原谅,如果这听起来很愚蠢,我是初学者)@Meet Lalwani如果您有特定错误,请告诉我!从pickle文件加载函数后,必须关闭file对象!!我认为这是一个简单而聪明的方法来解决这个问题!!我是否仍应在新文件中定义函数(请原谅,如果这听起来很愚蠢,我是初学者)