妳可以理解為:
對於:
from lxml import etree
是
from Module import Function或Class等
這個只是從模塊中導入壹個或幾個函數或類的做法。
另外壹個常見的是
import Module
妳這裏就是:
import lxml
是把整個模塊中得東西,包括上面那單個etree都導入->所以妳後面的程序就都可以使用了。
解決循環import的方法主要有幾種:
1.延遲導入
即把import語句寫在方法或函數裏面,將它的作用域限制在局部。這種方法的缺點就是會有性能問題。
2.將from xxx import yyy改成import xxx;xxx.yyy來訪問的形式 ?
3.組織代碼
出現循環import的問題往往意味著代碼的布局有問題。可以合並或者分離競爭資源。合並的話就是都寫到壹個文件裏面去。分離的話就是把需要import的資源提取到壹個第三方文件去。總之就是將循環變成單向。