我在module1中创建了一个名为tabla_precios
的pickle,我期待在module2中打开它。
pickle在module1中的函数中打开。
目前我正在导入module2中的函数,但我认为这不是最有效的方法,因为我认为每次在不同的模块中执行模块时我都在制作泡菜吗?
因此我认为直接在不同的模块中导入泡菜但我不知道该怎么做。
这就是我的尝试:
import pandas as pd
import pickle
main_df=pd.DataFrame()
pickle_out=open ('tabla_precios.pickle','wb')
pickle.dump(main_df,pickle_out)
pickle_out.close()
print(tabla_precios)
出现错误:
name 'tabla_precios' is not defined
我期待在另一个模块中导入泡菜。
答案 0 :(得分:1)
pickle只存储对类和函数的引用,而不是函数本身。如果你挑选一个类,那么当你取消它时,类定义需要在命名空间中。 python中的模块只导入一次,然后保存在sys.modules
中。重新导入此模块不会导致代码执行多次。要测试它,请尝试在模块中添加print
语句,看看它是否被多次调用。