`from x import y` vs.`from xy import*`

Qia*_*iao 6 python

这两条线有什么区别?

from PyQt4 import QtGui
from PyQt4.QtGui import *
Run Code Online (Sandbox Code Playgroud)

第一行是"从模块PyQt4导入QtGui类".
但是第二行意味着什么?"从模块PyQt4的QtGui导入所有内容".
不一样吗?

zeb*_*box 11

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

所以1)意味着你仍然需要通过模块命名空间显式引用任何类/函数等
2)意味着你没有

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

1)

import math

d = math.sqrt(10)
Run Code Online (Sandbox Code Playgroud)

2)

from math import *

d = sqrt(10)
Run Code Online (Sandbox Code Playgroud)

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

from math import sqrt
d = sqrt(10)
Run Code Online (Sandbox Code Playgroud)