一、模块的定义
本质上就是.py结尾的python文件.里边写了定义好的python代码。模块其实就是实现某一个功能
二、导入模块的方法
方法1
import 模块名称 #其实就是python文件的名称,不能加后缀
import 模块名称1,模块名称2,模块名称3...... #导入模块多个模块,
>>> import os
>>>
>>> import os,sys
方法2
from 模块名称 import *
from 模块名称 import 单个或多个函数
#不建议用这种方法,这种方法相当于将模块中的所有代码复制到了当前文件文件中。如果当前文件中有和模块中的方法相同时,模块中的方法就会让不生效了。因为被当前文件中的方法覆盖了。
>>> from random import randint
方法3
import 模块名称 as 别名
>>> import datetime as dt
>>> print(dt.time())
00:00:00
三、自定义模块
1.模块在相同的目录下
mkdir /root/data
[root@node5 data]# cat test1.py
#!/usr/bin/python3
def t1():
print('这是t1函数')
[root@node5 data]# cat test2.py
#!/usr/bin/python3
import test1 #导入test1文件
test1.t1() 调用test1文件中的t1函数
2.如果模块不在同一目录下
>>> import sys
>>> print(sys.path)
['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/usr/local/lib64/python3.6/site-packages',
'/usr/local/lib/python3.6/site-packages', '/usr/lib64/python3.6/site-packages', '/usr/lib/python3.6/site-packages']
sys.path使用列表,在导入模块的时候,会在这么路径下去搜索。如果我们自定义了模块,需要导入,并且自定义模块没有和主文件在同一目录下,我们将自定义模块所在的路径追加在次路经下就可以了
>>> sys.path.append('/data')
>>> sys.path
['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/usr/local/lib64/python3.6/site-packages',
'/usr/local/lib/python3.6/site-packages', '/usr/lib64/python3.6/site-packages', '/usr/lib/python3.6/site-packages', '/data']
3.name
__name__
如果直接运行本py文件__name__ 的值就是__main__
如果是被当作文件导入 __name__的值就是自己文件的名字