使用 import 语句时, 只导入包和模块, 而不单独导入函数或者类。 functionality)被执行, 这是一种副作用.
定义:
用于方便模块间共享代码的重用机制.
优点:
命名空间的管理规范十分简单. 每个标识符的来源都用一致的方式来表示. x.Obj 表示 Obj 对象定义在模块 x 中.
缺点:
模块名可能有命名冲突. 有些模块名的长度过长以至于不方便.
结论:
用 import x 来导入包和模块.用 from x import y , 其中x是包前缀, y是不带前缀的模块名.在以下情况使用 from x import y as z: 如果有两个模块都叫 y; 如果 y 和当前模块的某个全局名称冲突; 如果 y 是长度过长的名称.仅当缩写 z 是标准缩写时才能使用 import y as z.(比如 np 代表 numpy.)例如, 可以用如下方式导入模块 sound.effects.echo:from sound.effects import echo ... echo.EchoFilter(input, output, delay=0.7, atten=4)导入时禁止使用相对包名. 即使模块在同一个包中, 也要使用完整包名. 这能避免无意间重复导入同一个包.
例外:
这一规定的例外是:
typing 模块collections.abc 模块typing_extensions 模块