這兩行之間有什麼區別?`from x import y` vs.`from x.y import *`
from PyQt4 import QtGui
from PyQt4.QtGui import *
第一行是「從模塊PyQt4導入QtGui類」。
但第二行意味着什麼? 「從PyQt4模塊的QtGui導入所有東西」。
是不是一樣?
這兩行之間有什麼區別?`from x import y` vs.`from x.y import *`
from PyQt4 import QtGui
from PyQt4.QtGui import *
第一行是「從模塊PyQt4導入QtGui類」。
但第二行意味着什麼? 「從PyQt4模塊的QtGui導入所有東西」。
是不是一樣?
第一條語句將指定模塊導入當前名稱空間。
第二條語句將指定模塊中的所有內容導入當前命名空間。
所以1)意味着你仍然需要通過模塊的名稱空間
2,明確引用任何類/功能等),意味着你沒有
這裏有一個比較和對比,顯示差異
1 )
import math
d = math.sqrt(10)
2)
from math import *
d = sqrt(10)
注意,如果你想即
from math import sqrt
d = sqrt(10)
軟件包可能導出多個事物。區別在於第一行從包中導入單個對象,第二行導入所有內容。如果您要導入的軟件包只導出一件東西,則兩者是同義詞。
一是進口模塊插入到當前的命名空間,第二進口一切事情,從模塊自己的命名空間到當前的命名空間,你可以選擇從一個模塊中導入特定的符號。 –
請注意,第二種形式非常令人沮喪 - 請參閱http://docs.python.org/howto/doanddont.html#from-module-import瞭解原因。 – delnan