https://docs.python.org/3/tutorial/modules.html

一个module就是一个python文件,module的名字就是文件的名字。这个名字在module里保存在__name__变量中。

module里可以包含可执行的语句,这些语句在module第一次被import的时候执行,一般用于初始化。

每个module都有其私有的symbol table. 如果你知道自己在干什么,可以操作这个表。

module可以引入别的module. 这样会将被引入module的symbol table被弄到当前module里来,也可以只引入指定的名称(方法和变量)。引入的时候会排除掉以_开头的,这些被视作模块所私有的。Python用命名来区分私有和公共,并没有更严格的访问控制机制。一般来说 import * from module1是不提倡的,会污染代码可读性。

module也可以直接被执行,这时__name__将会是__main__. 这是Python的main方法。

module搜寻的路径

  1. 内置模块
  2. 在sys.path里寻找,分别是
    1. 当前文件夹
    2. PYTHONPATH指定的文件夹
    3. 安装默认值

__pycache__目录里保存着预编译的python模块文件。

标准模块不需要import.