如何在Python中pickle函数?
我定义了一个简单的函数并对其进行了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
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对象!!我认为这是一个简单而聪明的方法来解决这个问题!!我是否仍应在新文件中定义函数(请原谅,如果这听起来很愚蠢,我是初学者)