在课堂上调用时发生错误

时间:2013-06-07 05:19:11

标签: python pickle

我正在尝试在我的一个类中放置一个方法,这将允许我pickle和unpickle文件。所以,例如,我有

import pickle

class SomeClass:

    def otherMethods:
        pass

    def save_to_file(self, filename, file_to_save):
        with (filename,'wb') as output:
            pickle.dump(file_to_save,output,pickle.HIGHEST_PROTOCOL)
        print("Data has been saved.")

现在,当我创建一个'SomeClass'的实例时,我希望能够从终端调用如下...

myfile = [1,2,3] # or anything else
SomeClass.save_to_file('myfile.pk',myfile)

然而,抛出的是:

'AttributeError: __exit__'

我看过一些人在使用类似用例时遇到困难的帖子,但我无法弄清楚他们在我的情况下是如何应用的。非常感谢帮助。

1 个答案:

答案 0 :(得分:5)

open缺失:

with open(filename,'wb') as output:

with语句期望上下文管理器使用__enter____exit__方法,并引发AttributeError,因为元组(filename,'wb')没有它们。