例如,这是我的代码:
#extract the object from "lastringa.pickle" and save it
extracted = ""
with open("lastringa.pickle","rb") as f:
extracted = pickle.load(f)
其中“ lasting.pickle”包含带有一些文本的字符串对象。
因此,如果我在打开文件之前输入extracted.
,我将获得如图所示的代码建议:
但是,在执行extracted = pickle.load(f)
后,如果我键入extracted.
,我将不再获得代码建议。
有人可以解释一下为什么会这样以及如何解决这个问题吗?
Pickle读取和写入对象为二进制文件。您可以在使用open('lastringa.pickle', 'rb')
选项(即read binary)的地方通过rb
命令来确认。
您的IDE不知道泡菜应该读取的对象类型,因此它可以建议字符串方法(例如.split()
,.read()
)
另一方面,在第一张照片中,您的IDE知道expected
是一个字符串,并且知道建议什么。