Python入门之模块与包

yizhihongxing

Python入门之模块与包

当我们编写代码时,有些功能需要在多个程序中使用,为了不重复写代码,我们可以将这些功能封装到一个单独的.py文件中,然后在需要使用这些功能的程序中 import 这个文件,这个文件就称为模块(module),而多个模块放在一个文件夹中,这个文件夹就是一个包(package)。

定义模块

定义一个模块很简单,我们只需要在文件中编写我们要封装的功能的代码,然后将这个文件保存为 .py 格式。如果我们想要导入这个模块,我们只需要在使用这些功能的程序中使用 import 关键字导入这个模块即可。

以下是一个求和功能的示例:

# 定义一个名为math的模块
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

导入模块

在其他程序中导入模块很简单,只需要使用 import 关键字加上模块的名字即可。比如我们可以在另一个文件中导入我们刚刚定义的 math 模块。

# 导入 math 模块
import math

# 使用 math 模块中的 add 函数
print(math.add(1, 2)) # 输出 3

# 使用 math 模块中的 subtract 函数
print(math.subtract(2, 1)) # 输出 1

定义包

为了更好地组织我们的模块,我们可以将多个模块放在一个文件夹中,这个文件夹就是一个包。下面是一个简单的包的示例,我们在一个名为 mypackage 的文件夹中创建一个 math 模块和一个 string 模块。

mypackage/
|-- __init__.py
|-- math.py
|-- string.py

在这个包中,我们需要在 mypackage 目录下创建一个名为 __init__.py 的文件,这个文件可以为空,也可以包含一些初始化代码。

更进一步地,我们可以在 mypackage 目录下再创建一个名为 calc 的子目录,并在这个子目录中创建一个名为 statistics 的模块。

mypackage/
|-- __init__.py
|-- math.py
|-- string.py
|-- calc/
     |-- __init__.py
     |-- statistics.py

现在我们就可以在程序中导入这些模块和包了。使用 import 关键字加上模块和包的路径即可。

# 导入模块
from mypackage import math
print(math.add(1, 2))

# 导入包中的模块
from mypackage.calc import statistics
print(statistics.mean([1,2,3,4,5]))

示例

下面是一个更为复杂的示例,我们在一个名为 shape 的包中定义了三个模块,分别是 circletrianglerectangle,并在 shape 目录下创建一个名为 __init__.py 的文件。

shape/
|-- __init__.py
|-- circle.py
|-- triangle.py
|-- rectangle.py

init.py 文件中的代码如下:

# 在这里导入所有的模块,方便其他地方导入 shape 包中的模块
from . import circle
from . import triangle
from . import rectangle

circle.py 文件中的代码如下:

# 定义一个求圆的面积的函数
def area(radius):
    return 3.14 * radius ** 2

triangle.py 文件中的代码如下:

# 定义一个求三角形面积的函数
def area(base, height):
    return 0.5 * base * height

rectangle.py 文件中的代码如下:

# 定义一个求矩形面积的函数
def area(width, height):
    return width * height

现在我们就可以在程序中导入 shape 包中的模块了,并使用它们提供的功能。

# 导入 shape 包
import shape

# 使用 circle 模块中的 area 函数
print(shape.circle.area(5)) # 输出 78.5

# 使用 triangle 模块中的 area 函数
print(shape.triangle.area(4, 5)) # 输出 10.0

# 使用 rectangle 模块中的 area 函数
print(shape.rectangle.area(4, 5)) # 输出 20

这样我们就可以非常方便地组织和重用我们的代码了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python入门之模块与包 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 国外开发者谈为何放弃PHP而改用Python

    当我们看到一个题目时,有时候会不禁在心里问一句:“这个和我有什么关系吗?” 在这里,作为一个开发者,虽然你在使用某项技术时或永远没有使用过 PHP 或 Python,但了解这两个技术之间的差异还是很有用的。在这篇文章中,我们将讨论一些开发者为什么放弃 PHP 而转向 Python 的原因。同时,我们还会深入了解 Python 和 PHP 之间的差异。 PHP…

    python 2023年6月5日
    00
  • Python正则表达式匹配中文用法示例

    Python正则表达式匹配中文用法示例 在Python中,我们可以使用正则表达式进行中文字符串的匹配和替换。在正表达式中,中文字符使用Unicode编码进行匹配。本攻略将详细讲解如何使用Python正则表达式匹配中文字符串,包括如何使用Unicode码进行匹配、如何使用re模块进行匹配。 使用Unicode编码进行匹配 在Python中,我们可以使用Unic…

    python 2023年5月14日
    00
  • 详解Python IO口多路复用

    详解Python IO口多路复用 IO口多路复用指的是同时监控多个输入/输出通道的技术。它的优点通常包括高效(因为单个进程可以同时监控多个通道)以及响应灵敏(因为在单个进程中,轮询的频率可以很高)。 Python中有三种主要的IO口多路复用的实现:select、poll 和 epoll,它们都提供类似的接口(API),但不同之处在于性能和可扩展性等方面。 s…

    python 2023年5月30日
    00
  • Python闭包之返回函数的函数用法示例

    当一个嵌套函数引用了它外部函数的变量时,就形成了一个闭包。闭包可以让函数保留状态并在不同调用中记住这些状态。Python语言提供了函数返回函数的方法,可以用于构造函数式编程中的高阶函数和装饰器等。 本文将详细解释Python闭包的概念并给出相关的示例代码。 Python闭包的概念 Python中的闭包是指,在嵌套函数中引用了它外部函数的变量,并返回该内部函数…

    python 2023年6月5日
    00
  • python数据类型可变不可变知识点总结

    Python数据类型可变不可变知识点总结 在Python中,数据类型被分为可变和不可变两种类型。可变意味着这种类型的值可以在创建后更改,而不可变意味着这种类型的值创建后不能更改。这里我们将讨论常见的Python数据类型的可变性和不可变性,并提供相关示例。 不可变数据类型 数字类型 数字类型(int、float、complex等)是不可变的数据类型。这意味着每…

    python 2023年5月14日
    00
  • Python获取当前页面内所有链接的四种方法对比分析

    在本攻略中,我们将介绍四种方法来使用Python获取当前页面内所有链接,并对这四种方法进行对比分析。我们将提供两个示例,演示如何使用BeautifulSoup库和正则表达式获取当前页面内所有链接。 方法1:使用BeautifulSoup库获取当前页面内所有链接 我们可以按照以下步骤来使用BeautifulSoup库获取当前页面内所有链接: 导入Beautif…

    python 2023年5月15日
    00
  • 编写Python脚本来获取Google搜索结果的示例

    编写Python脚本来获取Google搜索结果的示例 在本攻略中,我们将介绍如何使用Python编写脚本来获取Google搜索结果。我们将使用第三方库googlesearch-python来实现这个功能。 步骤1:安装googlesearch-python库 在使用googlesearch-python库之前,我们需要先安装它。我们可以使用pip命令来安装g…

    python 2023年5月15日
    00
  • 详解Python核心对象类型字符串

    以下是详解Python核心对象类型字符串的完整攻略: 字符串的定义 在Python中,字符串是一种不可变的序列类型,用于表示文本数据。字符串可以使用单引号、双引号或三引号来定义。以下是一些示例代码: s1 = ‘Hello, World!’ s2 = "Hello, World!" s3 = ”’Hello, World!”’ 在这个…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部