模块和包(Python语言)

目录

一、什么是模块?

二、模块导入方式

2.1方法一:

2.2方法二:

2.3模块导入搜索路径:

2.4模块调用格式:

三、OS模块操作文件

四、模块的操作

4.1模块作用:

4.2模块分类:

4.3魔术变量:

五、模块制作案例


一、什么是模块?

简单的讲模块就是一个“*.py"的文件,文件中定义了很多实现不同功能的函数、属性和方法,类似于C语言中的头文件。在编写程序代码时如果想使用这些已封装在模块中的函数,需要先将其导入到编写程序的代码文件中才能被调用。所谓的包其实就是一个文件夹,文件夹下面保存着各种模块文件。

二、模块导入方式

2.1方法一:

import  模块名,...

说明:

1、导入模块中所有的函数。

2、只能通过“模块名.函数”的方式来引用

首次导入模块的本质:

1、首先解释器会打开模块文件。

2、然后执行模块文件中所有的代码,并产一个和模块名同名的模块对象并将模块文件中定义的函数、属性和方法保存到模块对象中。

3、最后编写程代码的文件就可以通过模块对象即模块名访问到模块文件中定义的所有函数、属性或方法。

2.2方法二:

from  模块名 import   函数名,...

说明:导入模块中部分函数。如果只需使用模块中的某些函数可以使用此方法。如果导入的函数重名,后面导入的函数会覆盖前面导入的函数。也可以使用“*”一次性将模块中所有函数导入。

首次导入模块的本质:

1、以模块为准创建一个和导入的函数同名的对象变量

2、执行模块文件,将执行过程相应的函数保存到对象变量中去

3、这样一来,开发者就可以通过对象变量来访问从模块中导入的某个函数。这意味着,可以直接通过函数名来调用从模块中导入的函数而不用加前缀。

说明:

1、import  模块名  as  别名, 给导入的模块起别名。

2、只能通过“函数名( )"的方式来引用函数、变量。

2.3模块导入搜索路径:

1、当前项目目录

2、如果当前项目目录没有,则到python中sys模块path环境变量中的目录下去查找

3、如果还找不到则到安装python目录下的lib/文件夹下去查找模块。

注意: 用户在自定义模块时,模块的名称不要与系统中的模块重名,否则解释器优先使用用户自定义的模块。

2.4模块调用格式:

方法一:模块名.函数名( )

通过“模块名+函数名”的方式调用模块中的函数可以防止不同模块中同名函数调用所导致的冲突问题。

方法二: 函数名()

此种方式只能应用在函数是以"from .....import"格式导入的情况。

三、OS模块操作文件

  • os.mkdir("E:/迅雷下载/OS测试") -------创建目录,不能多级创建目录
  • os.makedirs("E:/迅雷下载/test1/test2/test3")-----创建多级目录
  • os.rmdir("E:/迅雷下载/OS测试")----------删除空目录
  • shutil.rmtree("E:/迅雷下载/dir1")---------删除多级目录
  • os.rename("E:/迅雷下载/test.txt","E:/迅雷下载/test重命名.txt")--------文件重命名
  • os.remove("E:/迅雷下载/test重命名.txt")-------删除文件
  • os.getcwd()-------获取当前python脚本工作所在路径
  • os.path.join("E:\迅雷下载","Gsyue")------将path1和path2路径拼接成一个路径。其中path是模块文件中导入的一个模块。os.listdir("E:/")------列出路径下所有文件和目录并以列表的形式返回
  • os.listdir("E:/")------列出路径下所有文件和目录并以列表的形式返回
  • os.scandir("E:/")------也是获取路径下所有文件和目录。但返回的是一个可迭代的实例对象;实例对象里面又包含许多其它类的实例对象、这些其它类的实例对象保存着每个子文件的元数据。

        with  os.scandir("E:/")  as  obj_iter:      

                for i  in obj_iter:

                     print(i.name)

  • os.path.isdir("路径")---------判断是否为目录,如果是则返回True,否则返回False。
  • os.path.isfile("路径")--------判断是否为文件,如果是则返回True,否则返回False。

四、模块的操作

4.1模块作用:

1、有逻辑的组织我们的python代码。

2、以库的形式封装不同功能的函数,方便调用者去使用。

3、模块中可以定义函数、类和变量以及可执行的代码。

注意:不同的模块之间可以定义相同的变量名,但作用域只在各自的模块中。

4.2模块分类:

1、内置模块: 安装python软件时系统自带的模块

2、自定义模块: 开发者自己定义的模块

3、第三方模块: 由其它人制作的模块,需要开发者手动安装才能使用。

4.3魔术变量:

1、”__name__“魔术变量通常位于模块文件的末尾处,来对定义好的模块中的函数做测试。

执行本模块文件时“__name__==‘__main__’"   ,而做为模块文件被导入执行时“__name__=='模块文件名' ”。

目的: 为了防止模块在被导入时,其里面函数测试的代码也被执行。

2、”__all__"如果在一个模块中存在此魔术变量,在以“from 模块名 import  *  ”的方式导入模块时,只导入__all__此魔术变量中所保存的属性或函,即不在此魔术变量中的函数或变量无法被导入引用(这里的"*"被__all__变量限制了,不在代表所有)。

五、模块制作案例

1、在项目下创建一个模块文件

2、将模块文件移动到某个目录下

3、在目录下面创建一个setup.py文件,并写入一下内容:

 

 4、在目录下创建bulid/lib文件夹,并将模块文件复制到此目录下,完成模块创建;可以通过命令完成:

5、生成模块包压缩包。此压缩包就可以发布给别人安装使用了。

 6、创建一个项目文件

7、在项目虚拟环境下安装刚才制作好的模块压缩包

8、至此模块就安装到了项目中去,可以导入使用了。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Orion Guan's 山月润无声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值