昨天恰巧在工作学习的时候遇到了类似的问题,去查了一些资料,感觉虫师写的最为精妙,特转发过来,供大家学习。
Python 在执行import 语句时,到底进行了什么操作,按照Python的文档,它执行了如下操作: 第1 步,创建一个新的,空的module 对象(它可能包含多个module); 第2 步,把这个module 对象插入sys.module 中 第3 步,装载module 的代码(如果需要,首先必须编译) 第4 步,执行新的module 中对应的代码。 在执行第3 步时,首先要找到module 程序所在的位置,搜索的顺序是: 当前路径(以及从当前目录指定的sys.path),然后是PythonPATH,然后是Python 的安装设置相 关的默认路径。正因为存在这样的顺序,如果当前路径或PythonPATH 中存在与标准module 同样的 module,则会覆盖标准module。也就是说,如果当前目录下存在xml.py,那么执行import xml 时,导 入的是当前目录下的module,而不是系统标准的xml。 了解了这些,我们就可以先构建一个package,以普通module 的方式导入,就可以直接访问此package 中的各个module 了。Python 中的package 必须包含一个__init__.py 的文件