Python 模块

任何包含 Python 代码的.py扩展名的文本文件基本上都是一个模块。函数、类、变量、常量等不同的 Python 对象。,可以通过使用import语句使解释器会话或另一个 Python 脚本可用。 内置模块中定义的功能需要导入后才能使用。类似地,自定义模块可能包含一个或多个用户定义的 Python 对象。这些对象可以在解释器会话或其他脚本中导入。

如果编程算法需要定义大量的函数和类,那么它们就被逻辑地组织在模块中。一个模块存储类、函数和其他类似相关的资源。代码的这种模块化结构使其易于理解、使用和维护。

创建模块

下图是包含sum()函数定义的 Python 脚本。保存为calc.py

calc.py

def sum(x, y):
    return x + y 

导入模块

我们现在可以导入这个模块,并在 Python shell 中执行sum()函数。

Example: Importing a Module

>>> import calc 
>>> calc.sum(5, 5) 
10 

同样,要在另一个 Python 脚本中使用上面的calc模块,请使用 import 语句。

每个模块,无论是内置的还是定制的,都是一个模块类的对象。使用内置的type()功能验证不同模块的类型,如下图所示。

Example: Module Type

>>> import math
>>> type(math)
<class 'module'>
>>> import calc
>>> type(calc)
<class 'module'> 

重命名导入的模块

使用as关键字重命名导入的模块,如下图所示。

Example:

>>> import math as cal
>>> cal.log(4)
1.3862943611198906 

从..导入语句

上面的 import 语句将加载当前工作环境中模块的所有资源(也称为名称空间)。使用以下语法可以从模块中导入特定对象。比如下面的模块calc.py里面有三个功能。

calc.py

def sum(x,y):
    return x + y
def average(x, y):
    return (x + y)/2
def power(x, y):
    return x**y 

现在,我们可以使用…导入语句。例如,下面的代码在 test.py 中只导入了两个函数。

Example: Importing Module’s Functions

>>> from functions import sum, average
>>> sum(10, 20)
30
>>> average(10, 20)
15
>>> power(2, 4) 

以下示例仅导入一个函数 sum。

Example: Importing Module’s Function

>>> from functions import sum
>>> sum(10, 20)
30
>>> average(10, 20) 

您也可以使用from...import *语法导入它的所有函数。

Example: Import Everythin from Module

>>> from functions import *
>>> sum(10, 20)
30
>>> average(10, 20)
15
>>> power(2, 2)
4 

模块搜索路径

当在交互会话或脚本中遇到 import 语句时:

  • 首先,Python 解释器试图在当前工作目录中定位模块。
  • 如果没有找到,将搜索 PYTHONPATH 环境变量中的目录。
  • 如果仍未找到,它将搜索安装默认目录。

当 Python 解释器启动时,它将上述所有位置放在 sys.path 属性返回的列表中。

Example: Module Attributes

>>> import sys
>>> sys.path
['','C:\\python36\\Lib\\idlelib', 'C:\\python36\\python36.zip', 
'C:\\python36\\DLLs', 'C:\\python36\\lib', 'C:\\python36', 
'C:\\Users\\acer\\AppData\\Roaming\\Python\\Python36\\site-packages', 
'C:\\python36\\lib\\site-packages'] 

如果所需模块不存在于上述任何目录中,则会抛出消息ModuleNotFoundError

>>> import MyModule
Traceback (most recent call last): 
File "<stdin>", line 1, in <module>
    ModuleNotFoundError: No module named 'MyModule' 

重新加载模块

假设您已经导入并使用了一个模块。但是,模块所有者在您导入模块后添加或修改了一些功能。因此,您可以使用imp模块的reload()功能重新加载模块以获取最新的模块,如下所示。

Example: Reloading Module

>>> import imp
>>> imp.reload(calc)
<module 'calc' (built-in)> 

获取模块帮助

使用帮助()功能了解模块的方法和属性。例如,调用help("math")了解math模块。 如果您已经导入了一个模块,请提供其名称,例如help(math)

Getting Help on Module

如上所示,您可以看到方法名称和描述。它不会显示以- More -结尾的帮助页面。按回车键查看更多帮助。

也可以使用 dir() 函数知道模块的名称和属性。

Know Module Attributes and Methods

在下一章中了解模块属性。**

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/276014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-17 19:38
下一篇 2024-12-17 19:38

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29

发表回复

登录后才能评论