2012-12-07 69 views
0

我讀大蟒蛇絞教程http://krondo.com/?page_id=1327有點混亂,在許多例子有進口扭曲反應器或其他模塊的多個時間在Python文件,而不是在開始扭曲模塊。因爲使用python方式,我們在文件開始處使用導入模塊。任何人都可以詳細闡述它。導入函數而不是在開始

回答

1

一般來說你是正確的 - 在Python在大多數語言模塊中的相關import語句應該在那裏他們很容易找到該模塊的開始。在大多數情況下,這是可取的,所以這是如何教它。

但最喜歡的規則也有例外。 Python允許在函數和類定義以及模塊級別內導入語句。在函數中放入一個導入的一個很好的理由是,一些導入實際上可能相當昂貴,耗時的操作。

在Twisted的from twisted.internet import reactor有很多額外的工作和魔法去幕後的情況。因此,它更有意義延遲那些進口,直到它的實際需要 - 最好內,將只被調用一次(或在極少數情況下)功能。 Twisted特有的另一個原因(上述「魔術」)是導入reactor的行爲創建該對象的單例實例,而其他代碼可能會影響如何創建該實例。所以我們推遲導入反應堆,直到任何其他設置代碼有機會執行。

最後一個原因,它有時需要使用這些種線進口的是圓形的進口問題。除非您提出要求,否則我不會在此詳細介紹這一點,但我認爲您可以在此網站上找到有關該問題的其他討論。

+0

優秀.. :-) – Ayaz

相關問題