假設我正在製作一個項目,我們稱之爲master.py,因爲它是主文件。Python效率:在我導入的東西中導入東西?
#this is master.py
import a
import b
for i in range (whatever):
for j in range (whatever):
a.main(i)
b.main(j)
a和b是我所做的其他子功能,並且在其他文本文件中(爲了更容易調整)。現在,讓我們說的是:
#this is a.py
def main(i):
from numpy import sin
return sin(i)
和b:
#this is b.py
def main(j):
from random import uniform
return uniform(0, j)
master.py調用函數a和b很多次。每次它都會輸入sin,並在b中輸入uniform。這不是有效的,但我不知道解決方法(除了將a和b放在與master.py相同的文本文件中,我不想爲了調試的原因而這麼做)。我已經嘗試過在master.py中輸入用於導入sin和uniform的語句,但是當它調用a和b時,它會失敗,因爲不會導入sin和uniform。我想它必須在子程序中導入它們?我能否以某種方式在master.py中導入罪惡和制服並將它們傳遞給a和b,所以我不必每次都導入?
「這不能有效」 - 你有什麼證據嗎? (即你的代碼運行緩慢嗎?) –
請注意,一個簡單的解決方案(儘管我並沒有聲稱它實際上導致了性能差異),只是簡單地將'import'從函數中提取出來,直到'a.py'和'b.py'的頂層。 –
對不起,如果不清楚,那只是一句話。我認爲一遍又一遍地導入相同的東西效率不高。我還沒有真正構建過我的主程序,我計劃在深入研究之前如何提高它的效率。 – iammax