Python中的模块以及包
模块
1、模块的引入
1、import
方法:模块定义好后,我们可以使用 import 语句来引入模块
语法:import module1[, module2[,… moduleN]]
例子:
导入python中的模块os/math
代码:开平方根
import math
print(math.sqrt(4))
注意:一个模块只会被导入一次,不管你执行了多少次。这样可以防止导入模块被一遍又一遍地执行。
2、from…import 语句
方法:Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中
语法:from modname import name1[, name2[, … nameN]]
例子:
2、from…import *
方法:把一个模块的所有内容全都导入到当前的命名空间也是可行的
语法:from modname import *
例子:
扩展:
使用__all__魔幻方法
当被引入的包中有__all__=(),里面指定的才能被调用,调用的时候使用from模块名 import*
python包
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
简单来说,包就是文件夹,但该文件夹下必须存在 init.py 文件, 该文件的内容可以为空。init.py 用于标识当前文件夹是一个包。
考虑一个在 day 目录下的 runoob1.py、runoob2.py、init.py 文件,test.py 为测试调用包的代码,目录结构如下
test.py
day
|-- __init__.py
|-- runoob1.py
|-- runoob2.py
源代码如下:
day/runoob1.py
def runoob1():
print "I'm in runoob1"
day/runoob2.py
def runoob2():
print "I'm in runoob2"
然后我们在 day 同级目录下创建 test.py 来调用 day 包
# 导入 Phone 包
from day.runoob1 import runoob1
from day.runoob2 import runoob2
runoob1()
runoob2()
结果
I'm in runoob1
I'm in runoob2