當你有一個良好的書面圖書館,有時情況蟒蛇,你應該只需要導入它,使用它,因爲它。編寫良好的圖書館往往需要自己的生活和語言,導致愉快的閱讀代碼,你很少參考圖書館。當一個圖書館寫得很好時,你不需要重新命名或其他任何東西。
import gat
node = gat.Node()
child = node.children()
有時候不可能這樣寫,或者你想從你導入的庫中刪除東西。
from gat import Node, SubNode
node = Node()
child = SubNode(node)
有時候你的很多事情做,如果你的進口串溢出80列,這是好主意,這樣做:
from gat import (
Node, SubNode, TopNode, SuperNode, CoolNode,
PowerNode, UpNode
)
的最佳策略是把所有這些進口上的文件頂部。按字母順序排序,首先導入表達式,然後從導入表格中導入。
現在我告訴你爲什麼這是最好的約定。
Python完全可以有一個自動導入,當從全局名稱空間中找不到時,它會從主導入中查找該值。但這不是一個好主意。我很快解釋爲什麼。除了實現比簡單導入更復雜之外,程序員不會考慮依賴關係,並且從導入的東西中找出應該採取其他方式而不是僅僅關注導入。
需要找出依賴性是人們討厭「從...進口*」憎恨的一個原因。儘管存在一些你需要這樣做的不好的例子,例如opengl -wrappings。
因此,導入定義對定義程序的依賴性實際上很有價值。這是你應該如何利用它們的方式。從他們你可以快速檢查一些奇怪的功能從哪裏進口。
請參閱http://stackoverflow.com/questions/187453/import-package-vs-import-packagespecifictype – 2008-10-11 10:33:53
請參閱http://stackoverflow.com/questions/186472/from-x-import-a-versus-import -x-xa – 2008-10-11 10:35:11