百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python自定义模块的导入方法(python中自定义模块的导入方法)

off999 2024-10-02 18:41 35 浏览 0 评论

在程序开发过程中,遇到代码比较多时,为了便于维护和阅读,我们一般会把代码按照功能和相关性分别放到多个文件里。另外有些类或函数是用在多个项目中的,为了减少重复编码和便于集中维护,也会把这些代码单独存放到一个文件中。

Python引入了模块和包来管理更多的代码,.py文件就是一个模块 (module),包含一到多个模块的目录则被称为包 (package)。普通目录和包目录的区别在于包目录必须包含一个文件名为__init__.py的模块,此文件可以为空,也可以包含代码,模块的名称为目录名。

模块是一组Python代码的集合,可以调用其他模块,也可以被其他模块调用。模块名要遵循Python变量命名规范,不使用中文、特殊字符,供其他模块调用的模块不要和系统内置的模块名冲突,否则会将系统自带的模块屏蔽。

在项目中导入自定义模块一般分为三种情况:程序导入同级目录下的模块,程序导入子目录下的模块,程序导入其他目录下的模块(包括导入父目录下的模块)。

导入同级目录下的模块

在上图中,weibo.py用到了标号2处utils模块中的函数extend_date,我们可以导入整个模块,也可以导入模块的部分函数(函数名之间用逗号分隔)。两者的区别在于导入后的函数调用,前者函数名需要包含模块名,后者直接使用函数名。模块的导入和函数调用可以参考下面的实例。

导入整个模块

import utils

date = utils.extend_date('5分钟前')
print(date)     # 输出时间戳

导入模块的部分函数

from utils import extend_date

date = extend_date('5分钟前')
print(date)     # 输出时间戳

导入子目录下的模块

在上图中,weibo.py用到了标号1处utils模块中的函数extend_date,下面以导入模块部分函数为例来说明。

from libs.utils import extend_date

date = extend_date('5分钟前')
print(date)     # 输出时间戳

在这种情况下,经大器测试,libs目录下的__init__.py文件不是必要的,不会影响utils模块的导入。

导入任意目录下的模块

Python导入包时默认是从sys.path中搜索的。导入其他目录的方法有两种:在sys.path添加模块路径和创建.pth文件。两者都是在sys.path中添加路径,区别是前者是临时添加路径下的模块,只在当前的模块中导入有效,后者是添加路径为默认路径,在任意模块都可以导入路径下的模块。大器推荐用创建.pth文件的方法,只需设置一次路径,便可以在任意模块直接导入路径下的模块。

sys.path添加模块路径

先导入sys模块,然后通过sys.path.append(path)添加模块所在目录的路径。

ListVideo.py调用标号1处utils模块中的函数extend_date的示例如下。

import sys
sys.path.append(r'I:\work\work')
from libs.utils import extend_date

date = extend_date('5分钟前')
print(date)     # 输出时间戳

创建.pth文件

打开Python安装目录下的site-packages目录,使用pip命令安装的第三方库便存放于此,python的安装路径根据安装时的选择可能会不一样。

D:\Program\Python\Python38\Lib\site-packages

site-packages目录下创建mylibs.pth文件,文件名可以取别的名称,文件的内容填写模块或包所在目录的路径。此文件是纯文本文件,可以填写多个路径,路径之间用回车分隔,可以用记事本、VS Code编辑器等文本编辑器打开编辑。

I:\work\work

文件创建后,Python会扫描.pth文件中填写的路径,导入目录下的模块。ListVideo.py调用标号1处utils模块中的函数extend_date的示例如下。

from libs.utils import extend_date

date = extend_date('5分钟前')
print(date)     # 输出时间戳

__init__.py文件

Python包由__init__.py文件、模块文件和子目录组成,__init__.py文件定义了包的属性和方法。如果子目录中也有__init__.py,那么它就是这个包的子包。当我们将包作为模块导入时,实际上导入了__init__.py文件。

__init__.py文件可以是空文件,也可以写包的初始化相关代码,或者定义__all__变量。__all__变量是一个列表,列举了这个包包含的子模块名称。在使用from libs import *时,会把列表中的模块全部导入,此时必须定义__all__变量才能调用包中模块的函数,其他情况则无须定义__all__变量。__all__变量的定义如下。

__all__ = ['abc', 'utils']

ListVideo.py调用标号1处utils模块中的函数extend_date的示例如下。注意函数前面依然需要指定模块名称。

from libs import *

date = utils.extend_date('5分钟前')
print(date)     # 输出时间戳

通常不建议用from libs import *这种形式,因为会导致代码可读性降低,并且当前模块中的名称有可能覆盖导入模块中的名称。 改进的方法是将*用当前所用到的类名或函数名称代替,多个名称之间用逗号隔开,也可以将多个名称放到元组中,以便于换行。


我是大器,正在建立自己的知识库,并将这些经验分享给你,请关注我,一起交流学习。


相关阅读:

用Python获取子目录或文件列表

Python pip包管理工具

相关推荐

2500电脑组装最强配置(2500左右组装电脑主机配置清单)

两千五百元组装电脑,但配置只能是一般。台式机分为主机和显示器两个主体,按这个价格,显示器只能配置一般的,大约两百多元价格,其余都用来组装主机,主机包含机箱,电源,排风扇,电脑主板及内存,电脑处理器,声...

小米手机定时关机怎么设置(如何让小米手机定时关机)
小米手机定时关机怎么设置(如何让小米手机定时关机)

1、从设置菜单中找到电池与性能选项。      2、选择电池版块,点击定时开关机。      3、将定时开机右边的按钮开...

2025-12-28 02:51 off999

磁盘删除的文件怎么恢复(磁盘误删怎么恢复)

可以恢复,因为删除文件时,其实只是把表头删除了,后面的数据并没有删除,直到下一次进行写磁盘操作需要占用节点所在位置时,才会把相应的数据覆盖掉。所以,就算你误删了文件之后又进行了其他写磁盘操作,只要没有...

qq自动回复内容古风(qq自动回复古文)
qq自动回复内容古风(qq自动回复古文)

1、抽剑相助,搭救无辜,却引来杀身之祸。那女子故作柔弱,假装爱慕,只为那本剑谱。2、只缘感君一回顾,使我思君朝与暮。3、相知相惜若可谓缘,不负韶华年。4、看那天地日月,恒静无言;青山长河,世代绵延;就像在我心中,你从未离去,也从未改变。5、...

2025-12-28 01:51 off999

惠普电脑bios设置u盘启动(惠普 bios u盘启动)

惠普电脑bios设置u盘启动:1、插上制作好的u启动启动盘的u盘并启动电脑,在进入开机画面的时候按“f2”进入bios界面;2、进入bios界面之后切换到“boot”,准备设置u盘启动;3、这里在键盘...

win7优化开机启动项(windows10启动项优化)

开机出现错误0xc0000017无法开机错误的解决办法。1、就是system文件丢失了。2、如果想来恢复正常,需要有U盘或者光盘的pe系统,在pe下修复。3、本身C:\Windows\System32...

联想笔记本电脑系统恢复出厂设置
  • 联想笔记本电脑系统恢复出厂设置
  • 联想笔记本电脑系统恢复出厂设置
  • 联想笔记本电脑系统恢复出厂设置
  • 联想笔记本电脑系统恢复出厂设置
默认浏览器怎么改(软件默认浏览器怎么改)

在浏览器中设置默认浏览器的方法略有不同,以下是在常见的几个浏览器中设置默认浏览器的方法:1.在Windows10中设置Edge浏览器为默认浏览器:  a.打开&#...

显卡驱动程序是什么

NVIDIA驱动是一种软件,用于管理安装在计算机上的NVIDIA图形处理器,以确保它们正常运行。NVIDIA是一家知名的GPU(图形处理器)制造商,提供各种高性能显卡和集成GPU,这些设备需要相应的驱...

电脑的网络怎么连接wifi(台式电脑wifi在哪里打开)
  • 电脑的网络怎么连接wifi(台式电脑wifi在哪里打开)
  • 电脑的网络怎么连接wifi(台式电脑wifi在哪里打开)
  • 电脑的网络怎么连接wifi(台式电脑wifi在哪里打开)
  • 电脑的网络怎么连接wifi(台式电脑wifi在哪里打开)
扣扣空间电脑版登录入口(qq空间电脑版官网网站登录)
扣扣空间电脑版登录入口(qq空间电脑版官网网站登录)

可以通过以下链接登陆进入QQ空间:https://qzone.qq.com/QQ空间(Qzone)是腾讯公司于2005年开发出来的一个具有个性空间,具有博客(blog)的功能,自问世以来受到众多人的喜爱。在QQ空间上可以书写日志、写说说...

2025-12-27 22:03 off999

怎么还原(怎么还原手机出厂设置)

1、首先,在Excel工作表中依次点击左上角的文件图标——Excel选项。2、然后,在弹出来的Excel选项的小窗口中点击左侧的保存菜单栏目。3、接着,在保存菜单栏目的右侧可以看到自动恢复文件的位置,...

台式电脑可以设置密码吗(台式电脑如何设密码怎么办)
  • 台式电脑可以设置密码吗(台式电脑如何设密码怎么办)
  • 台式电脑可以设置密码吗(台式电脑如何设密码怎么办)
  • 台式电脑可以设置密码吗(台式电脑如何设密码怎么办)
  • 台式电脑可以设置密码吗(台式电脑如何设密码怎么办)
怎么用360升级系统版本(怎么用360更新系统)

360可以下载补丁更新漏洞,对系统进行升级(在360修复漏洞里面点立即修复就行了)升级电脑系统大多数情况下是指低版本的系统升级到高版本的系统,比如说从windows2000升到xp,从vista升级到...

360助手电脑版客户端(360软件助手电脑)

还是非常好的,都是能够让他可以直接拦截病毒,同时能够让他清理内存,而且能够让这个有非常好的手机应用软件权限优化作用。360手机助手是360推出的手机助手,拥有海量软件和游戏轻松下载,炫彩主题壁纸随心点...

取消回复欢迎 发表评论: