首页 > 深入Python > 自省的威力 > 使用 from module import 导入模块 | << >> |
diveintopython.org |
|
Python for experienced programmers |
Python有两种导入模块的方法。两种都有用,你应该知道什么时候使用哪一种方法。一种方法, import module,你已经在第一章看过了。另一种方法完成同样的事情,但是它以细微但重要的不同方式工作。
例 2.4. 基本的 from module import 语法
from types import BuiltinFunctionType, BuiltinMethodType, \ FunctionType, MethodType, ClassType
这种语法与你所知的 import module 语法类似,但是有一个重要的区别:导入模块 types 的属性和方法被直接导入到局部名字空间中,所以这些属性和方法是直接有效的,不需要通过模块名来限定。
例 2.5. import module 对比 from module import
>>> import types >>> types.FunctionType <type 'function'> >>> FunctionType Traceback (innermost last): File "<interactive input>", line 1, in ? NameError: There is no variable named 'FunctionType' >>> from types import FunctionType >>> FunctionType <type 'function'>
types 模块不包含方法,只有每个Python对象类型的属性。注意, FunctionType 属性必需用 types 模块名进行限定。 |
|
FunctionType 本身没有被定义在当前名字空间中;它只存在于 types 的上下文环境中。 | |
这个语法直接从 types 模块中导入 FunctionType 属性到局部名字空间。 | |
现在 FunctionType 可以直接存取,不需要引用 types。 |
什么时候你应该使用 from module import?
另外,它只是风格问题,你会看到用两种方式编写的Python代码。
进一步阅读 |
|
« 自省的威力 | 可选和定名参数 » |