Python `从x导入y`vs`从x.y导入*`

Python `从x导入y`vs`从x.y导入*`,python,Python,这两条线有什么区别 from PyQt4 import QtGui from PyQt4.QtGui import * 第一行是“从模块PyQt4导入QtGui类”。 但第二行是什么意思?“从模块PyQt4的QtGui导入所有内容”。 这不一样吗?包可以导出多个东西。区别在于第一行从包中导入单个对象,第二行导入所有对象。如果您要导入的包只导出一件事,则这两件事是同义的。First语句将指定的模块导入当前名称空间。 第二条语句将指定模块中的所有内容导入当前名称空间 因此1)意味着您仍然需要通过模

这两条线有什么区别

from PyQt4 import QtGui
from PyQt4.QtGui import *
第一行是“从模块PyQt4导入QtGui类”。
但第二行是什么意思?“从模块PyQt4的QtGui导入所有内容”。

这不一样吗?

包可以导出多个东西。区别在于第一行从包中导入单个对象,第二行导入所有对象。如果您要导入的包只导出一件事,则这两件事是同义的。

First语句将指定的模块导入当前名称空间。
第二条语句将指定模块中的所有内容导入当前名称空间

因此1)意味着您仍然需要通过模块名称空间显式引用任何类/函数等
2) 意思是你不知道

这里有一个比较和对比,显示了差异

(一)

(二)

请注意,如果需要,您可以选择从模块导入特定符号,即

from math import sqrt
d = sqrt(10)

首先将模块导入当前名称空间,第二个将模块拥有的名称空间中的所有内容导入当前名称空间。请注意,第二种形式非常不推荐—请参阅以了解原因。
from math import *

d = sqrt(10)
from math import sqrt
d = sqrt(10)