2017-04-26 39 views
1

我在module1中创建了一个名为tabla_precios的pickle,我期待在module2中打开它。 泡菜在模块1中的一个功能中打开。为什么我无法在不同的模块中加载咸菜?

目前我正在导入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

'print(tabla_precios)':你没有定义'tabla_precios'变量,但是你将它传递给'print'。 – CristiFati

回答

0

pickle只存储对类和函数的引用,而不是函数本身。如果你选择了一个类,那么当你取消它时,类定义需要放在名字空间中。 Python中的模块只导入一次,然后保存在sys.modules。重新导入该模块不会导致代码被执行多次。要测试它,请尝试在模块中添加一条print声明并查看它是否被多次调用。