Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Python中如何随心所欲使用自定义模块

在Python中如何随心所欲使用自定义模块

作者头像
fanjy
发布于 2022-06-04 01:35:51
发布于 2022-06-04 01:35:51
2.3K0
举报
文章被收录于专栏:完美Excel完美Excel

Python模块并不神秘,它只是一个Python文件或一组Python文件。使用Python模块,可以编写可重用的、更有条理的代码。例如,可以编写一个通用Python模块来执行CSV文件处理任务,世界各地的数据科学家都可以使用该模块来读取、写入和操作CSV文件。

Python附带了数百个提供不同功能的默认模块。然而,你也可以用Python编写自己的自定义模块。这就是本文的内容。

创建自定义模块

要在Python中创建自定义模块,只需创建一个新的Python文件。创建一个名为newmodule.py的Python文件,其中包含三个函数:print_text()、find_log()和find_exp(),如下所示。因为模块只是另一个Python文件,所以可以在Python模块内定义任何内容,比如类、方法、数据结构等等。

newmodule.py

import numpy as np

def print_test():

print("本消息来源于外部模块")

def find_log(num):

return np.log(num)

def find_exp(num):

return np.exp(num)

这样,创建了一个名为newmodule的模块,可以在其它Python应用程序和文件中使用你定义在newmodule里的三个函数。

要使用自定义Python模块,Python解释器应该能够访问包含自定义模块的Python文件。有三个位置可以保存包含自定义模块的Python文件,以便Python解释器可以访问它。

1.与访问模块的Python文件位于同一目录中

2.在另一个目录中,该目录必须添加到Python解释器的路径中

3.在Python解释器的默认路径内。

导入相同目录里的自定义模块

创建另一个名为mainfile.py的文件,位于与刚创建的newmodulepy文件在同一目录中。mainfile.py文件将在本文中用于测试自定义模块的功能。

要导入自定义模块,可以使用import语句,后跟模块名称。此语法类似于导入默认或已安装的Python模块。下面的脚本导入由存储在与mainfilepy文件相同的目录中newmodule.py创建的newmodule模块。注意,要导入模块,只需指定模块名称,而不必指定“.py”扩展名。

接下来,脚本将调用newmodule模块中定义的三个函数。从另一个模块调用函数的一种方法是指定模块名,后跟点“.”运算符和函数名,如下面的脚本所示:

mainfile.py

import newmodule

newmodule.print_text()

print("这条消息来自main文件")

log16= newmodule.find_log(16)

print(log16)

exp16= newmodule.find_exp(16)

print(exp16)

上面的脚本应该会成功执行,你应该会看到下面的输出,这表明你能够成功导入newmodule模块。

输出:

本消息来源于外部模块

这条消息来自main文件

2.772588722239781

8886110.520507872

如果你不想输入一个长的模块名称,后面跟着一个点运算符,那么可以在导入模块时通过as运算符给它一个别名,如下所示:

mainfile.py

import newmodule as nm

nm.print_text()

print("这条消息来自main文件")

log16= nm.find_log(16)

print(log16)

exp16= nm.find_exp(16)

print(exp16)

注意,现在只需键入nm,而不是在每次调用函数时键入newmodule。

如果知道你只需要模块中的某个函数,那么可以通过从你的模块中导入那些特定的函数或特性,而不是导入完整的模块,让它变得更加简单。为此,可以使用from关键字。例如,下面的脚本从newmodule导入find_log()函数。在这种情况下,根本不需要使用点运算符将函数名附加到模块名,相反,可以直接调用函数名。

mainfile.py

from newmodule import find_log

log16= find_log(16)

print(log16)

同样,可以从一个模块导入多个函数。例如,下面的脚本从newmodule模块中导入find_log()和find_exp()函数。

mainfile.py

from newmodule import find_log, find_exp

log16= find_log(16)

print(log16)

exp16= find_exp(16)

print(exp16)

不过,有一种更简单的方法可以避免使用点符号。如果要从Python模块导入所有内容,只需使用星号*运算符即可。通过这种方式,可以使用模块中的所有函数、类等,而无需使用点运算符将该函数附加到模块名称中。这里有一个例子。

mainfile.py

from newmodule import *

log16= find_log(16)

print(log16)

exp16= find_exp(16)

print(exp16)

从不同的路径导入自定义模块

还可以将自定义模块保存在导入它的目录之外的目录中。我们创建另一个模块newmodule2.py,该文件包含一个方法find_sqrt(),如下所示。

newmodule2.py

import numpy as np

def find_sqrt(num):

return np.sqrt(num)

将上面的文件保存在另一个目录“D:\完美Excel”中。

现在,如果要在Python应用程序中导入newmodule2模块,必须将该模块的路径附加到Python解释器可访问的路径列表中。sys.path列表包含这些路径的列表。

可以使用append()方法将新路径添加到Python解释器可访问的路径列表中。之后,可以导入该模块并访问其函数。下面是一个示例脚本可供参考。

mainfile.py

import sys

sys.path.append(r"D:\完美Excel")

import newmodule2

sqrt16= newmodule2.find_sqrt(16)

print(sqrt16)

从默认Python路径添加和导入自定义模块

最后,可以将自定义模块导入Python应用程序,方法是将该模块保存在Python解释器尝试导入Python模块时搜索的默认路径之一。

要查看这些路径的列表,可以遍历“sys.path()”列表,如下面的脚本所示:

import sys

fori in sys.path:

print(i)

注意,这里的输出取决于Python的安装和系统名。

可以在sys.path列表中的任何路径中添加自定义模块。很多人喜欢将自定义模块存储在包含site-packages的目录中。在我的输出中,这个目录是“C:\Users\excelperfect\AppData\Local\Programs\Python\Python39\lib\site-packages”。

下面创建另一个名为newmodule3.py的模块并将其放置在site-packages目录中。

newmodule3.py

def find_product(num1, num2):

return num1 * num2

下面的脚本导入newmodule3模块,执行该模块中的find_product()函数。

mainfile.py

import newmodule3

prod85= newmodule3.find_product(8, 5)

print(prod85)

最后,可以从Python应用程序的不同位置导入多个自定义模块。例如,下面的脚本将导入在本文中创建的newmodule、newmodule2和newmodule3模块。

mainfile.py

import newmodule, newmodule2, newmodule3

log16= newmodule.find_log(16)

print(log16)

sqrt16= newmodule2.find_sqrt(16)

print(sqrt16)

prod85= newmodule3.find_product(8, 5)

print(prod85)

就这些!将经常使用的函数存储在它们自己的自定义模块中是一种很好的做法,这样就不必在每次编写新的Python脚本时都重新构建它们。这是一种非常好的方法,可以让你的代码井然有序、简洁明了,让外部用户更容易理解。

注:本文学习整理自wellsr.com,总结了自己编写的模块的各种不同的使用方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python基础(二十六):模块和包简单介绍
Python模块(Module),是⼀个 Python文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变量,模块里也能包含可执行的代码。
Lansonli
2023/01/26
7240
Python基础(二十六):模块和包简单介绍
1.自定义模块
​ 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先备考虑面向对象)。比如抖音这个软件,不可能将所有程序都写入一个文件,所以咱们应该将文件划分,这样其组织结构要好并且代码不冗余。加入分了10个文件,每个文件里面可能都有相同的功能(函数),怎么办?所以将这些相同的功能封装到一个文件中,那么这个存储着很多常用的功能的py文件,就是模块。 模块就是文件,存放一堆常用的函数,谁用谁拿。怎么拿?比如:我要策马奔腾共享人世繁华,应该怎么样?我应该骑马,你也要去浪,你是不是也要骑马。 我们说一个函数就是一个功能,那么把一些常用的函数放在一个py文件中,这个文件就称之为模块,模块,就是一些列常用功能的集合体。
changxin7
2019/09/10
5340
1.自定义模块
Python进阶教程笔记(四)模块和包
Python语言本身提供了非常多的模块,比如数学模块math、cmath、decimal、statistics;文件模块pathlib、stat、shutil等;除了使用官方模块,有时候也需要自定义模块。
Lemon黄
2020/10/30
5160
(九) 初遇python甚是喜爱之Modules模块操作
各位读者大大们大家好,今天学习python的Modules模块操作,并记录学习过程欢迎大家一起交流分享。
XXXX-user
2019/07/23
3640
(九) 初遇python甚是喜爱之Modules模块操作
【从零学习python 】37.Python自定义模块的使用和注意事项
除了使用系统提供的内置模块以外,我们还能自己写一个模块供自己的程序使用。一个.py文件就是一个模块,所以,自定义模块很简单,基本上相当于创建一个.py文件。但是,需要注意的是,如果一个.py文件要作为一个模块被别的代码使用,这个.py文件的名字一定要遵守标识符的命名规则。
全栈若城
2024/02/29
1610
【语法05】Python模块
在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。
用户7886150
2021/01/07
4140
python模块与包揭秘
我们首先导入了math模块,然后利用math模块中的sqrt函数计算了4的平方根。让我们再细致一点来看待这个问题。 我在之前提到过,其实import也是执行了一个赋值操作,它把我们需要导入的目标模块对象赋值给了对应的变量名,例如上例就是把math模块对象赋值给了math这个变量名,然后math所指向的模块对象中的内容(函数、最外层的变量)都可以认为是math这个对象的属性(方法),所以我们可以用object.attr的形式来访问。
tnt阿信
2020/08/05
5060
python模块与包揭秘
Python 自定义模块
1.import 模块名:导入模块中的所有内容(引入多个用逗号分隔) import random,time
用户7886150
2021/01/21
8730
Python教程(17)——python模块是什么?python模块详解
模块是一个包含了Python定义和语句的文件,可用于将功能组织成可重用和可维护的代码块。每个Python文件都可以作为一个模块,模块可以包含变量、函数、类或可执行代码。通过使用模块,我们可以将代码分离成逻辑单元,促进模块化编程。所以我们可以简单的理解为,一个py文件就是一个模块,大部分情况都是这样的。
一点sir
2024/01/10
1750
Python教程(17)——python模块是什么?python模块详解
【Python】从基础到进阶(五):探究Python中的函数与模块
在前几篇文章中,我们已经学习了Python的基本语法、控制流以及数据操作等核心概念。这些知识使我们能够编写出简单但功能完备的程序。
空白诗
2024/08/29
1770
【Python】从基础到进阶(五):探究Python中的函数与模块
python基础教程:模块高级技巧
上一节,我们讲解了Python模块的基础知识,这一节我们继续深入了解模块的更多知识,从而让大家全面了解、掌握和运用模块到我们实际的编程中。
一墨编程学习
2019/05/15
8440
挑战30天学完Python:Day12 模块Modules
模块是在应用程序中一个包含一组代码或一组函数的文件。模块可以是包含单个变量、函数或大型代码库的文件。
MegaQi
2023/10/21
2120
挑战30天学完Python:Day12 模块Modules
Python学习笔记5—Python模块
    默认情况下,python第三方的模块安装在python 的安装目录下site-packages下,以文件或者目录的形式存放
py3study
2020/01/10
3570
python3--模块和包,软件开发规范
在第一次导入某个模块时(比如my_module),会检查该模块是否已经被加载到内存中(执行文件的名称空间对应的内存),如果有则直接引用,如果没有,解释器则会查找同名的内建模块,如果还没有找到就从sys.path给出的目录列表中依次寻找my_module.py文件
py3study
2018/08/02
7280
Python基础13-模块的使用
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
4010
Python基础13-模块的使用
python模块和包
一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py 的后缀。
超蛋lhy
2018/08/31
1.4K0
Python - 模块与包
如果你在 51 Testting 上面见到这篇文章,不要以为我是盗版哦!因为那是我投稿的文章
小菠萝测试笔记
2020/06/19
6810
Python面试常见问题集锦:基础语法篇
在求职Python开发岗位的过程中,扎实掌握基础语法是成功应对面试的关键。本篇博客将聚焦Python基础语法,梳理面试中常见的问题、易错点,并提供实用的代码示例,帮助您在面试中展现出深厚的技术功底,从容应对挑战。
Jimaks
2024/04/16
2590
图解python | 模块
教程地址:http://www.showmeai.tech/tutorials/56
ShowMeAI
2022/02/23
5430
图解python | 模块
Python类、模块、包的区别
模块,在Python可理解为对应于一个文件。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量。一般用module_name.fun_name,和module_name.var_name进行使用。这样的语义用法使模块看起来很像类或者名字空间,可将module_name 理解为名字限定符。模块名就是文件名去掉.py后缀。
hbbliyong
2018/08/01
1.2K0
相关推荐
Python基础(二十六):模块和包简单介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档