调用 from-import 可以把名字导入当前的名称空间里去, 这意味着你不需要使用属性/句点
属性标识来访问模块的标识符。 例如, 你需要访问模块 module 中的 var 名字是这样被导入的:
from module import var
我们使用单个的 var 就可以访问它自身。 把 var 导入到名称空间后就再没必要引用模块了。
当然, 你也可以把指定模块的所有名称导入到当前名称空间里:
限制使用 "from module import *"
在实践中, 我们认为 "from module import *" 不是良好的编程风格, 因为它"污染"当前名称
空间, 而且很可能覆盖当前名称空间中现有的名字; 但如果某个模块有很多要经常访问的变量或者
模块的名字很长, 这也不失为一个方便的好办法。
我们只在两种场合下建议使用这样的方法, 一个场合是:目标模块中的属性非常多, 反复键入
模 块 名 很 不 方 便 , 例 如 Tkinter (Python/Tk) 和 NumPy (Numeric Python) 模 块 , 可 能 还 有
socket 模块。另一个场合是在交互解释器下, 因为这样可以减少输入次数。
属性标识来访问模块的标识符。 例如, 你需要访问模块 module 中的 var 名字是这样被导入的:
from module import var
我们使用单个的 var 就可以访问它自身。 把 var 导入到名称空间后就再没必要引用模块了。
当然, 你也可以把指定模块的所有名称导入到当前名称空间里:
from module import *
限制使用 "from module import *"
在实践中, 我们认为 "from module import *" 不是良好的编程风格, 因为它"污染"当前名称
空间, 而且很可能覆盖当前名称空间中现有的名字; 但如果某个模块有很多要经常访问的变量或者
模块的名字很长, 这也不失为一个方便的好办法。
我们只在两种场合下建议使用这样的方法, 一个场合是:目标模块中的属性非常多, 反复键入
模 块 名 很 不 方 便 , 例 如 Tkinter (Python/Tk) 和 NumPy (Numeric Python) 模 块 , 可 能 还 有
socket 模块。另一个场合是在交互解释器下, 因为这样可以减少输入次数。