Python入门之模块与包

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日

相关文章

  • Python GUI学习之登录系统界面篇

    这里为你详细讲解 “Python GUI学习之登录系统界面篇”的完整攻略。 一、前置知识 在开始学习Python GUI界面编程之前,建议对Python基础语法和面向对象编程有一定的了解。 二、环境准备 在进行Python GUI开发之前,需要安装GUI库。本攻略主要介绍使用Tkinter库进行开发。 安装Tkinter: 在Windows环境下,Tkint…

    python 2023年5月30日
    00
  • Python Flask异步发送邮件实现方法解析

    Python Flask异步发送邮件实现方法解析 在Web应用程序中,发送邮件是一个常见的需求。Python中有很多第三方库可以用于发送邮件,其中包括smtplib、email等。本文将详细讲解如何使用Python Flask异步发送邮件,包括安装Flask-Mail库、配置邮件服务器、发送邮件等。 安装Flask-Mail库 在使用Flask-Mail库之…

    python 2023年5月15日
    00
  • 使用 python 在树莓派中进行 I2C 通信

    【问题标题】:I2C communication in raspberry pi using python使用 python 在树莓派中进行 I2C 通信 【发布时间】:2023-04-02 16:24:01 【问题描述】: 我想使用 PYTHON 或最后选择 C ​​为树莓派配置 I2C。我曾在 ATMEL 微控制器上工作过,它提供与任何设备的 I2C 通…

    Python开发 2023年4月8日
    00
  • 详解Python中namedtuple的使用

    让我来给您详细讲解Python中namedtuple的使用的完整攻略。 什么是namedtuple namedtuple是Python中collections模块提供的一种特殊的元组类型,它跟元组的行为类似,但是可以为其中的每一个字段指定一个名字。因此,当需要将一些数据组织成元组形式,但希望每个元素都有一个明确的含义时,namedtuple是一个很好的选择。…

    python 2023年5月14日
    00
  • centos 下面安装python2.7 +pip +mysqld

    下面是在 CentOS 下安装 Python2.7、pip 和 MySQL 的完整攻略: 1. 更新系统 在安装任何软件之前,先更新一下系统: sudo yum -y update 2. 安装相关依赖包 安装 Python 和 pip 需要一些依赖项,因此需要先安装它们: sudo yum -y install gcc openssl-devel bzip2…

    python 2023年5月14日
    00
  • python抖音表白程序源代码

    下面我来为您详细讲解“python抖音表白程序源代码”的完整攻略。 确认环境与安装必要依赖库 要使用抖音表白程序,我们需要确认以下两个前提条件: 安装Python环境,可前往Python官网下载安装:https://www.python.org/downloads/ 安装必要的依赖库,分别是requests与hashlib,可以在命令行中使用以下命令进行安装…

    python 2023年5月31日
    00
  • Python中输出ASCII大文字、艺术字、字符字小技巧

    在Python中输出ASCII大写字母、艺术字、字符字等内容,可以使用一些小技巧来实现。下面是一些具体的实现方法: 输出ASCII大写字母 要输出ASCII大写字母,可以使用Python内置的string模块。具体实现方法如下: import string uppercase = string.ascii_uppercase print(uppercase)…

    python 2023年6月5日
    00
  • Python 获取div标签中的文字实例

    在Web页面中,div标签通常用于组织和布局页面内容。本攻略将介绍Python获取div标签中的文字的方法,包括使用BeautifulSoup库和使用正则表达式。 使用BeautifulSoup库 BeautifulSoup是一个Python库,用于解析HTML和XML文档。它提供了一组简单而强大的API,用于遍历和搜索文档树。以下是一个示例代码,用于使用B…

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