之後未定義Python變量我試圖通過使用multiprocessing
庫中的Pool
查找歷史股票價格數據以查找符號列表。if __name__ =='__main__'
這很好,直到我嘗試使用我回來的數據。我定義了我的hist_price
函數,並將其輸出到的列表中。我可以print(pcl)
它已完美無瑕,但如果我嘗試print(pcl)
後if __name__=='__main__':
塊,它爆炸說pcl
是未定義的。我試過在幾個地方宣佈global pcl
,但它沒有什麼區別。
from multiprocessing import Pool
syms = ['List', 'of', 'symbols']
def hist_price(sym):
#... lots of code looking up data, calculations, building dicts...
stlh = {"Sym": sym, "10D Max": pcmax, "10D Min": pcmin} #simplified
return stlh
#global pcl
if __name__ == '__main__':
pool = Pool(4)
#global pcl
pcl = pool.map(hist_price, syms)
print(pcl) #this works
pool.close()
pool.join()
print(pcl) #says pcl is undefined
#...rest of my code, dependent on pcl...
我也試圖消除if __name__=='__main__':
塊,但它給了我拋出一個RuntimeError告訴我專門把它放回去。是否有其他方法可以調用變量以在if
塊之外使用?
你有'if __name __ =='__ main __':'因爲你是從終端運行腳本還是其他原因? –
@MosesKoledoye可能是因爲OP正在使用多處理。 – poke
@poke oh好的。顯然是如此。 –