2017-04-26 16 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聲明並查看它是否被多次調用。

相關問題