Python3中导入自定义模块的三种方法详解

 2024-03-05 01:08:13  阅读 0

本文主要向您介绍三种导入自定义模块的方法。 文章通过示例代码对其进行了详细的介绍,对于大家的学习或者工作具有一定的参考学习价值。

前言

最近从廖雪峰的教程中学习了模块部分。 关于如何自定义一个模块,如果不明白的话,我们先看一下基本介绍:

模块

在计算机程序的开发过程中,随着编写的程序代码越来越多,一个文件中的代码会越来越长,维护起来也越来越困难。

为了编写可维护的代码,我们将许多函数分组到不同的文件中,使得每个文件包含相对较少的代码。 许多编程语言都使用这种组织代码的方式。 在.py中,.py文件称为模块()。

使用模块有什么好处?

最大的好处就是代码的可维护性大大提高。 其次,编写代码时不必从头开始。 编写模块后,可以在其他地方引用它。 当我们编写程序时,我们经常会引用其他模块,包括内置模块和第三方模块。

使用模块还可以避免函数名和变量名冲突。 具有相同名称的函数和变量可以存在于不同的模块中。 因此,我们自己编写模块时,不必考虑名称会与其他模块冲突。 但也要注意不要与内置函数名称冲突。 单击此处查看所有内置功能。

你可能还会想,如果不同的人写同名的模块怎么办? 为了避免模块名称冲突,引入了一种按目录组织模块的方法,称为()。

例如,文件 abc.py 是名为 abc 的模块,文件 xyz.py 是名为 xyz 的模块。

现在,假设我们的两个模块名称 abc 和 xyz 与其他模块冲突,那么我们可以通过包来组织模块,以避免冲突。 方法是选择一个顶级包名,例如存放在以下目录:

├─.py

├─ abc.py

└─ xyz.py

引入包后,只要顶层包名不与其他包名冲突,所有模块都不会与其他包名冲突。 现在,abc.py 的模块名称变为.abc,同样,xyz.py 的模块名称变为.xyz。

请注意,每个包目录下都会有一个 .py 文件。 该文件必须存在,否则该目录将被视为普通目录而不是包。 .py 可以是一个空文件,也可以有代码,因为 .py 本身是一个模块,它的模块名称是。

同样,可以有多级目录,形成多级包结构。 例如以下目录结构:

├─ 网络

│ ├─ .py

│ ├─ utils.py

│ └─

├─.py

├─ abc.py

└─xyz.py

该文件的模块名称为.web.www,两个文件utils.py的模块名称分别为.utils和.web.utils。

创建自己的模块时,应注意命名,以免与内置模块的名称冲突。 例如,如果系统自带了sys模块,那么你的模块就不能命名为sys.py,否则你将无法导入系统自带的sys模块。

.web 也是一个模块。 请注明该模块对应的.py文件。

概括

模块是可以使用其他模块并且也可以被其他模块使用的代码的集合。

创建自己的模块时,请注意:

模块是个好东西。 专家们开源共享了很多模块,这也加快了大家的开发速度。

因为刚开始,很多细节都不太明白。 当我在网上查找资料时,我发现大师给出的教程过于简洁,这使得我这个新手很难成功。

所以记录在这里。

开始

第一种,直接

这里有一个大前提,就是你的py执行文件和模块属于同一个目录(父目录),如下图:

python中模块的用法_模块的定义python_python中模块的定义

我把模块提供的函数写在.py中,其中只提供了一个hi函数:

# pwcong 模块的 __init__.py
# -*- coding: utf-8 -*-
def hi():
 print("hi")

直接向模块执行文件main.py:

# main.py
# -*- coding: utf-8 -*-
import pwcong
pwcong.hi()

然后我们运行main.py,可以看到命令行窗口输出了一句hi。 第一种方法完成。

使用模块的方法是:先导入->然后输入.|,如上例中的.hi()

二、通过sys模块导入自定义模块的路径

如果可执行文件和模块不在同一个目录下,此时将无法直接找到自定义模块。 如下所示:

python中模块的用法_模块的定义python_python中模块的定义

sys模块是内置的,所以我们导入自定义模块的步骤如下:

首先导入sys模块

然后使用sys.path.(path)函数导入自定义模块所在目录

导入自定义模块。

此时main.py是这样写的:

# main.py
# -*- coding: utf-8 -*-
import sys
sys.path.append(r"C:\Users\Pwcong\Desktop\python")
import pwcong
pwcong.hi()

最后执行main.py文件,最终输出hi。 第二种方法就完成了。

第三种方式是通过pth文件找到自定义模块

这种方法的原理是利用系统变量,会扫描path变量的路径来导入模块,可以将其添加到系统路径中。 但我还是推荐使用pth文件添加。

模块和可执行文件目录结构如下图所示:

python中模块的定义_python中模块的用法_模块的定义python

我们创建一个.pth文件,其内容为模块所在目录:

C:\用户\\\

将 .pth 文件放在此处:

安装目录\\Lib\site-

例如我的:

python中模块的定义_模块的定义python_python中模块的用法

然后 main.py 导入并使用自定义模块:

# -*- coding: utf-8 -*-
import pwcong
pwcong.hi()

最后执行main.py文件,可以输出hi,第三种方式就完成了。

标签: 模块 导入 目录

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码