我讀大蟒蛇絞教程http://krondo.com/?page_id=1327有點混亂,在許多例子有進口扭曲反應器或其他模塊的多個時間在Python文件,而不是在開始扭曲模塊。因爲使用python方式,我們在文件開始處使用導入模塊。任何人都可以詳細闡述它。導入函數而不是在開始
0
A
回答
1
一般來說你是正確的 - 在Python在大多數語言模塊中的相關import語句應該在那裏他們很容易找到該模塊的開始。在大多數情況下,這是可取的,所以這是如何教它。
但最喜歡的規則也有例外。 Python允許在函數和類定義以及模塊級別內導入語句。在函數中放入一個導入的一個很好的理由是,一些導入實際上可能相當昂貴,耗時的操作。
在Twisted的from twisted.internet import reactor
有很多額外的工作和魔法去幕後的情況。因此,它更有意義延遲那些進口,直到它的實際需要 - 最好內,將只被調用一次(或在極少數情況下)功能。 Twisted特有的另一個原因(上述「魔術」)是導入reactor
的行爲創建該對象的單例實例,而其他代碼可能會影響如何創建該實例。所以我們推遲導入反應堆,直到任何其他設置代碼有機會執行。
最後一個原因,它有時需要使用這些種線進口的是圓形的進口問題。除非您提出要求,否則我不會在此詳細介紹這一點,但我認爲您可以在此網站上找到有關該問題的其他討論。
相關問題
- 1. (Python)爲什麼不在函數中導入模塊,而是在開始導入它們的最佳方式?
- 2. 導入功能而不是開始或腳本?
- 3. JavaScript執行從函數聲明開始而不是$(document).ready()?
- 4. 導入初始化函數
- 5. InputStreamReader,FileInputStream開始解析文件在中點而不是開始
- 6. Jar不是從雙擊開始,而是從命令行開始
- 7. 活動未開始;另一項活動是開始而不是
- 8. 返回對象而不是複雜類型的函數導入
- 9. #導入iAd而不是.h
- 10. Javascript函數替換而不是寫入
- 11. 從頭開始寫入而不刪除
- 12. 導入模塊錯誤不是函數?
- 13. 一開始的東西,而不是instanciation
- 14. 酒吧從1開始而不是0
- 15. Datanode的開始而不是NameNode的
- 16. 從1開始代碼而不是0?
- 17. For循環從0001開始而不是從1開始
- 18. 使BufferedReader從.txt文件的中間開始而不是開始?
- 19. 爲什麼從std :: placeholders :: _ 1開始而不是_0開始?
- 20. 爲什麼應該從0開始而不是從1開始?
- 21. 如何開始迭代而不是從一開始
- 22. JavaScript告訴視頻從一秒開始而不是零開始
- 23. F#Seq.FindIndex從結尾開始而不是從頭開始?
- 24. 在Javascript中,如何只導入函數而不導入類或對象?
- 25. 這是正確的導入模塊只在功能,而不是在文件的開始?
- 26. 文本框 - >立即開始輸入,而不是點擊框
- 27. 開始新的線程,而不是放入隊列
- 28. MySQL函數定義 - 'BEGIN'(開始)在這個位置不是有效的輸入
- 29. 爲什麼增量計數從0開始而不是從1開始?
- 30. 從範圍開始的Excel VBA數組從-1開始而不是0
優秀.. :-) – Ayaz