一、模块的导入
模块的导入有以下几种方式:
1、import 模块名 [as 别名]
(1)支持同时导入多个模块(模块之间使用","分隔)。如:import math,os,time
(2)导入模块时可以为模块定义别名。如:import calendar as CAL
(3)导入模块后,需使用“模块名.x”的格式使用模块中的成员x(函数、类或变量)。如:"import math"导入后可使用"math.pi"方式访问变量pi的值。
2、from 模块名 import 成员序列
如:from math import pi,e
(1)以这种方式导入的成员,可以直接使用。如:print(pi,e)
(2)可以为成员起别名。如:from random import shuffle as SF
3、from 模块名 import *
使用该方法可导入模块中的全部成员。但是,如果模块中定义了__all__变量(列表类型),则只导入__all__中列出的成员。
示例:假设myfun.py中定义了三个函数funA、funB、funC和二个类myclassA、myclassB,且__all__=["funA","myclassB"],则“from myfun import *”仅导入了二个成员:funA和myclassB。
4、__import__( )
该方法以字符串的方式指定模块名,适用于动态加载模块。如:mh=__import__("math");print(mh.pi,mh.e)
5、importlib.import_module
该方法以字符串的方式指定模块名,适用于动态加载模块。如:
from importlib import import_module as imp
mh=imp("math")
print(mh.pi,mh.e)
二、自定义模块
1、创建模块
(1)一个Python程序就是一个Python模块。
(2)模块中的全局变量、自定义函数和类,均可导入到其他Python程序中调用。
(3)可以定义命名为“__all__”的列表,指定“from 模块名 import *”方式导入时加载的成员。
(4)模块中未定义“__all__”的列表时,“from 模块名 import *”方式将加载全部成员。
2、创建包
一个文件夹就是一个Python包。这个文件夹包括:
(1)任意个py脚本文件(.py),用于声明全局变量、自定义函数和类。
(2)一个__ini__.py文件,可缺省。文件内容可以有:
----全局变量、自定义函数和类。
----也可定义名为“__all__”的列表,指定当使用“from 包名 import *”时导入的成员。
3、导入自定义的包或模块
自定义模块或包可以保存到:
(1)Python安装目录的Lib\site-packages文件夹。这时可为其他任何Python程序导入。
(2)Python程序所在文件夹。这时只能为这个文件夹中的Python程序导入。

