在使用import的时候注意:
1、一般情况下尽量优先使用import a形式,如访问B时使用a.B的形式。
2、有节制地使用from a import B形式,可以直接访问B
3、尽量避免使用from a import * ,并且这会污染命名空间,并且无法清晰地表示导入了哪些对象。
python 在初始化运行环境的时候会预先加载一批内建模块到内存中,这些模块相关的信息被存放在sys.modules中。
对于用户定义的模块,import机制会创建一个新的module将其加入当前的局部命名空间中,与此同时,sys.modules也加入了该模块的相关信息。
直接使用import和使用from a import B形式这两者之间存在一定的差异,后者直接将B 暴露于当前局部空间,而将a加载到sys.modules集合。
无节制使用from a import...带来的问题:
- 命名空间的冲突
- 循环嵌套导入的问题
网友评论