模块是代码的归类,能定义函数、类和变量,把相关的代码分配到一个模块里,能让你的代码更好用,更易懂、也更简洁。模块在java中叫做类库。
模块的存在方式:
模块可以是单个.py文件,也可以是一个文件(里面存放n多个.py文件)。
1、模块分类:
内置模块:如os和sys是两个非常常见的和操作系统交互的模块;file是文件操作相关的模块;比较常用的一些模块如:logging、time/datetime、json/pickle
自定义模块:自己写的py文件或者文件夹(可含多个py文件)
第三方模块:如requests、math等
2、模块的使用:原则是先导入后使用
最好是模块和执行文件放在同一目录,导入方法可以使用import也可以使用from。
主要语法形式如下:
import导入单个模块:比如导入单个.py文件,s1.py,可直接使用import+文件名
import s1
s1.login()#使用s1中的login函数
import导入文件夹下的文件:如s1.py在lib文件夹下,可使用import 文件夹名.文件名
import lib.s1
from导入单个模块:比如导入单个.py文件,s1.py,
from s1 import login
login()
from 一次性导入所有的函数:但是不太推荐这种方式。
from s1 import *
login()
logout()
如果是文件夹的形式,导入后可以设置别名,后续可以使用别名直接调用。
from lib import s1 as lib_s1
from scr import s1 as scr_s1
3、模块的优先级规则:
python会先去项目所在的目录去找,如果不存在,再去python默认的其他目录去找,优先级是从上往下找。具体优先级可查看sys.path
如果文件不在系统查找目录,可以通过append来添加。
案例1:模块查找目录优先级。
import sys
for item in sys.path:
print(item)
查找优先级:
案例2:假设s2不在系统的目录,则可以先添加,再导入s2文件:
import sys
sys.path.append('D:\\')#导入D盘文件夹
import s2#文件名
4、第三方模块的导入
通过pip3安装与下载:
1)pip3 install 模块。python3自带pip3,需要添加pip3的目录到环境变量中,然后即可直接导入模块。
2)pip3 uninstall +卸载模块
导入模块requests
案例:
步骤1:进入目录
开始—cmd,打开命令编辑框,输入如下命令(cd+空格+pip3所在的目录),进入pip3的目录:
输入的命令:cdC:\Users\...\AppData\Local\Programs\Python\Python36\Scripts
步骤2:安装wheel
输入:pip3 install requests
通过下载源码,进行安装,下载源码,然后执行
5、模块中的特殊变量:
1)查看所有的内置变量
执行结果:
2)注释信息__doc__
import s2
print(__doc__ )#获取注释信息,获取py程序文档"""里面的内容
3)获取当前程序所在路径__file__
# print(__file__)#获取当前程序所在的路径
import os
print(os.path.abspath(__file__))#C:\Users\...\PycharmProjects\study2017\s2.py
print(os.path.dirname(os.path.abspath(__file__)))#C:\Users\...\PycharmProjects\study2017
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#C:\Users\...\PycharmProjects
4) print(__package__)#获取程序所在的包,文件import哪个包就在哪个里面,如果自己的包,则显示None。
5)主文件执行__name__=="__main__"
#只有执行当前文件时才执行。当前文件的特殊变量__name__=="__main__",如果是导入的时候,就不执行,因此在主文件中可以这么写,这样可以限制,只在主程序执行,作为模块导入时不执行
def run():#定义run函数
print("run")
run()
if __name__=="__main__":#只在主程序内运行
run()
领取专属 10元无门槛券
私享最新 技术干货