2017-04-19 29 views
1

這是關於「進口」命令 的位置(一個一般性的問題 - 發現難以尋求類似的問題)在Python腳本「進口」的安置

somefunction需要一個somefunction是在一個單獨的文件中。 我看到三種可能的選擇。如果我要在某個函數中導​​入某個東西,哪一個更好?或者還有其他的選擇嗎?

## main command lines 
import a     # choice 1: import in a main command line 
import file.somefunction 

somefunction() 

## function command lines in a separate file 
import a     # choice 2: import ahead of function 

def somefunction(): 
    import a    # choice 3: import within function 

回答

1

PEP 8的一般指導:

進口量始終把在文件的頂部,只是任何模塊 意見和文檔字符串,和之前模塊全局變量和常量之後。

也就是說,人們有時會在導入模塊時偶爾會將函數放入函數中,這些情況下模塊只能在特定函數調用時導入(通常是模塊不總是可用或者避免使用圓形導入,或者導入是否花費某些東西並需要延期)。例如,請參閱server adapters for the itty micro-webframework

另一種做法是在if __name__ == '__main__'之後立即放置一些僅用於主要部分的模塊。當有人導入當前模塊時,可以防止不必要的子導入。

+0

非常感謝你改進我的問題和你的回答 – Nury

+0

希望我有限的語言和編碼能力不會打擾你 – Nury

0

我相信通常的做法是將模塊導入到任何地方使用。因此,如果某個函數使用某個函數(位於一個單獨的文件中),那麼其中一個文件的頂部會有import a,即函數所在的位置。 然後,在另一個文件中,您將導入file.somefunction並將其用作必要。

+0

非常感謝你的回答 我會按照你的做法! – Nury

0

一般指導(每個PEP 8)是將導入置於文件頂部。

+0

謝謝你的回答!我不知道一般指導! – Nury