1.概念
模块:模块就是程序,每一个.py文件都是一个模块.
命名空间:一般为模块名
包:一组类型相同的模块组成的文件夹,创建包的步骤如下:
1)创建一个文件夹,文件夹的名字即包的名字;
2)在文件夹中创建一个__init__.py的模块,内容可以为空;
3)将相关的模块放入文件夹中;
2.如何导入模块和包
1)导入模块
首先创建test.py模块
#test.py
def test1():
print("\ntest1")
def test2():
print("\ntest2")
在refer.py模块中调用test.py模块中的方法
#refer.py
import test
test.test1()
test.test2()
输出如下:
test1
test2
以上的调用中,test即为命名空间(也就是模块名),此时调用模块中的函数时必须加上命名空间;
2)导入模块中的函数
在refer.py中导入test.py中的函数
#refer.py
from test import test1
from test import test2
test1()
test2()
输出如下:
test1
test2
以上调用模块中的函数时不需要添加命名空间
3)导入包
首先创建testpackage包,将test.py模块放入包中.此时refer.py的调用代码如下
#refer.py
import testpackage.test as tc
tc.test1()
tc.test2()
输出:
test1
test2
在调用模块时前面需要加上包名,另外使用了as将命名空间简化成了别名tc
3.包和模块的搜索路径
首先看一下python的默认搜索路径
>>> import sys
>>> sys.path
['', 'D:\\python3.5.1\\Lib\\idlelib', 'D:\\python3.5.1\\python35.zip', 'D:\\python3.5.1\\DLLs', 'D:\\python3.5.1\\lib', 'D:\
\python3.5.1', 'D:\\python3.5.1\\lib\\site-packages']
以上的python的默认搜索路径,包括安装路径和当前项目所在的路径,前面创建的包和模块都是在当前项目所在路径下,因此能搜索到
如果要添加路径
>>> sys.path.append('E:\\python')
>>> sys.path
['', 'D:\\python3.5.1\\Lib\\idlelib', 'D:\\python3.5.1\\python35.zip', 'D:\\python3.5.1\\DLLs', 'D:\\python3.5.1\\lib', 'D:\
\python3.5.1', 'D:\\python3.5.1\\lib\\site-packages', 'E:\\python']
则将模块和包放在E:\python,也能找到
这种方法添加的路径,交互终端重启后会失效