Python中的模块和包是组织和管理代码的重要工具。通过模块和包,你可以更好地管理和重用你的代码,使得代码更加模块化和可维护。
目录
前言
正文
一、模块
1、模块的分类
1)内置模块
python解释器中默认拥有的模块可以直接使用(如:os、random)
2)第三方模块
3)自定义模块
2、模块的使用
1)import 模块名 as 别名
2)from 模块名 import 函数名
3)两种方式的优劣
二、包
1、创建一个包
2、包的使用,和模块的导入是一样的
三、内置变量__name__
总结
前言
在一个文件中为了实现某些功能代码将会越来越长,这样就会导致代码的维护性以及可读性较差。为了避免这种情况,我们可以将不同的函数(功能)进行分类,放在不同的文件里,这样每个文件的代码相对较少。更利于我们进行代码的管理。
正文
一、模块
模块是一系列功能(函数)的集合体
1、模块的分类
1)内置模块
python解释器中默认拥有的模块可以直接使用(如:os、random)
2)第三方模块
由其他大佬写好的模块,需要到网上下载(如:requests、pandas)
下载方式:在终端中输入命令pip install 模块名 -i [镜像源]
3)自定义模块
自己写的模块,模块名称需要遵循标识符的规定
2、模块的使用
先导入模块同一个模块只需要导入一次,通常是把导入模块的代码放在文件的开头导入后,可以在程序的任意地方使用模块里的功能。导入一个模块时模块中的代码会被执行一遍。
1)import 模块名 as 别名
该方式会导入模块中的所用功能,可以通过模块名调用该模块中的所有函数
作用:导入模块中的所有内容
别名:当模块名太长时,可以通过as来重命名
例:
模块login.py中的内容
# 这是一个用于检查用户名与密码是否正确的的模块
def Login():user = input('请输入用户名:')password = input('请输入密码:')if user == '写代码也摆烂':if password == '123':return Truereturn False# 用于输出登入是否成功
def Login_TF(buer):if buer:print('登入成功')else:print('用户名或密码错误')
main.py中的内容
# 这里是主文件
# 使用import直接调用调用登入模块
import login
# 该方式会导入模块中的所用功能,可以通过模块名调用该模块中的所有函数print('调用login.Login()的结果')print(login.Login())print('调用login.Login_TF(login.Login())的结果')login.Login_TF(login.Login())# 对模块名进行重命名
import login as lgprint('重命名后调用lg.Login()的结果')print(lg.Login())
运行main.py结果:
2)from 模块名 import 函数名
该方法是是用于指定导入模块中的功能/变量
作用:导入模块中指定的功能
3)两种方式的优劣
优:使用import导入可以直接使用模块中的所有函数较为方便,使用form导入可以针对性的导入自己需要使用的函数, 所需要占用的资源少
劣:import直接导入所用功能,会占用较多的资源且模块中大部分的函数不会被使用到。使用from导入如果需要使用较多的函数时会比较麻烦
二、包
如果说模块是功能(函数的集合体),那么包就是模块的集合体,它的作业与模块类似,不过它是用来对模块进行分类的。
1、创建一个包
步骤:new--python package(包的命名遵守标识符的规定)
一个包本质上是一个包含了一些模块和一个特殊的 __init__.py
文件的目录。、
__init__.py :导包的时候会自动执行init文件里
2、包的使用,和模块的导入是一样的
语法:import 包名.模块名
from 包名 import 模块名
from 包名.模块名 import 函数名/变量名
三、内置变量__name__
当 Python 解释器加载一个模块时,它会将该模块的名称赋值给 __name__
变量。如果模块是主程序,Python 解释器会将 __name__
设置为 "__main__"
;否则,如果模块是被导入的,__name__
就是模块的名称。
作为主程序运行时:
作为模块被引用时(导入一个模块时模块中的代码会被执行一遍):
该变量常用于判断一个文件是被直接执行还是被导入到另一个文件中执行。通常用于测试模块中的功能是否能正常使用。
# 这是一个用于检查用户名与密码是否正确的的模块
def Login():user = input('请输入用户名:')password = input('请输入密码:')if user == '写代码也摆烂':if password == '123':return Truereturn Falseif __name__ == '__main__':# 判断该文件是否被直接执行,如果是则执行以下代码# 以下代码用于测试该文件中的函数是否能正常使用# 如果该文件被当作模块来调用则不会执行以下代码print(__name__)Login()
直接运行该文件(运行了if中的语句):
调用该文件(没有执行if中的语句):
总结
多个数据放在一起称为 列表、元组、字典、集合等
多个语句放在一起完成一个功能,称为函数
多个函数放在一起,称为模块
多个模块放在一起,称为包