python模块导入

python模块的首次导入会发生三件事:

1.执行所导入模块的文件

2.产生所导入模块文件的名称空间,将该文件运行过程中产生的名字都丢到当前文件的命名空间中

3.在当前文件中产生的名字“被导入模块名”,该名字指向该文件产生的命名空间

之后再导入该模块,直接引用首次导入产生的结果,不会产生新的命名空间

python文件的两种用途:

1.当做程序被运行

2.当做模块被导入

当"__name__" == "__main__"时,当前文件为普通python文件,当"__name__" == 文件名时,当前文件被当做模块被调用

模块通过from 模块名 import * 导入之后调用模块的变量时,*是根据__all__这个列表去查找的,如果这个列表内没有定义的变量是无法被调用的

模块调用的顺序:

一般首次调用非内置的模块时,是先从文件中读取模块然后加载到内存中,除非程序结束,否则一直存在于内存中,如果,在程序没结束前再次调用,则直接从内存中取该模块

查看加载到内存的模块,print(sys.modules)

导入非同目录的模块时,可以先把目标模块的绝对路径加入sys.path里面。然后再导入

原文地址:https://www.cnblogs.com/thanos-ryan/p/13696922.html