import机制

import定义:Python code in one module gains access to the code in another module by the process of importing it.
 
一 模块module
文件,类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。
 
二 包package
目录,目录里的文件即上述模块,可以导入所有模块也可以导入部分模块。
注意目录里为首的一个文件__init__.py。假如子目录中也有 __init__.py 那么它就是这个包的子包了。
导入包的时候__init__.py文件会自动执行,这为管理很多文件进行统一初始化提供了很好的帮助。
 
关于导入路径查找:
程序会从sys.path中从前到后寻找这些目录下有没有我们要找的模块或者包。一旦找到即停止并返回路径。目前排在第一位的一般是当前程序所在路径,其次是各种安装包路径(所以安装包里隐藏了很多自带的模板文件,在任何自定义的程序文件中都可以直接拿来导入)。
 
sys.path有两种方式查看:
1.执行代码,查看输出结果。
import sys, os
print('--------')
for path in sys.path:
    print(path)
print('--------')
2.在Console视图区域点击Option-Show sys.path contents。
 
关于导入路径增加:
可以用sys.path.append('c:\mypythonlib') ,注意加入到运行环境的环境变量后,文件运行结束后,这个环境变量就会被释放。
也可以用sys.path.insert(1, 'c:\mypythonlib') 序号从0开始,表示最大优先级,加入的也是临时搜索路径,程序退出后失效。
 
示例:
文件a.py里定义了函数print1和print2,同时定义了变量k1和k2。
def print1(i):
    print "hello {}".format(i)
def print2(i):
    print "hello {}".format(i)
k1 = 111
k2 = 222
 
文件b.py导入文件a.py后,被导入的文件名称a即作为当前程序文件的一个对象存在,敲入a.后会自动弹出a文件里定义的函数和变量,可以将其看作a的属性。
import a
a.print1("cj1")
a.print2("cj2")
print a.k1+a.k2
 
输出:
hello cj1
hello cj2
333
 
假如文件a.py是放在文件夹FileA里,那么import a这一行代码可以修改为from FileA import a或者from FileA import *,后面的代码不需修改。
 
 
https://www.jb51.net/article/152450.htm *****
https://blog.csdn.net/sty945/article/details/78750950 ****
https://cloud.tencent.com/developer/news/308692 ***
 
原文地址:https://www.cnblogs.com/myshuzhimei/p/11751282.html