【 Python 全栈开发 - 语法基础篇 - 19 】模块和包

2023-11-09

文章目录


在 Python 中,模块指的是一个包含 Python 代码的文件,它可以被其他 Python 程序导入和使用。模块通常包括一些函数、类和变量,可以用于执行特定的任务或实现特定的功能。

而包指的是一个包含多个模块的文件夹,其中还可以包含子文件夹和其他资源文件。包可以用来组织复杂的程序结构,使得程序更易于维护和扩展。在包中,还可以添加一个名为__init__.py的文件,该文件可以包含一些初始化代码,例如设置环境变量、导入模块等。


一、模块

学习模块需要掌握以下内容:

  1. 导入模块:了解如何从其他 Python 文件中导入模块,使用 import 语句将其引入到程序中。

  2. 导入特定变量和函数:了解如何从模块中导入特定的变量和函数,以及如何使用别名来引用这些变量和函数。

  3. 模块搜索路径:了解 Python 查找模块的搜索路径,包括当前目录、PYTHONPATH 环境变量、标准库以及第三方库等。

  4. 标准库模块:熟悉 Python 标准库中常用的模块,例如ossysremathdatetime等,能够使用这些模块执行常见的任务。

  5. 第三方库模块:了解如何使用第三方库来扩展 Python 功能,例如numpypandasmatplotlib等。

  6. 创建和使用自定义模块:了解如何创建自定义的 Python 模块,以及如何在其他 Python 程序中使用这些模块。

掌握了这些内容,就可以更好地理解和使用 Python 中的模块了。


  1. 导入模块:

在 Python 中,可以通过import语句导入其他模块,从而在当前程序中使用该模块中的函数、变量等。例如,将math模块导入到程序中,就可以使用它提供的数学函数:

import math

print(math.sqrt(2))  # 输出1.4142135623730951
  1. 导入特定变量和函数:

有时候我们只需要导入模块中的某些变量或函数,可以使用from...import语句来实现。例如,从math模块中导入pisin函数:

from math import pi, sin

print(pi)  # 输出3.141592653589793
print(sin(pi/2))  # 输出1.0
  1. 模块搜索路径:

当使用import语句导入模块时,Python 会按照一定的顺序来搜索模块,这个搜索路径包括当前目录、Python 标准库、PYTHONPATH 环境变量指定的路径以及其他第三方库的路径。下面的代码可以输出 Python 的模块搜索路径:

import sys

print(sys.path)
  1. 标准库模块:

Python 自带了大量的标准库模块,可以方便地执行各种任务,例如os模块提供了操作文件和目录的函数,sys模块提供了与 Python 解释器交互的函数,re模块提供了正则表达式操作函数等。例如,使用os模块来获取当前工作目录:

import os

print(os.getcwd())  # 输出当前工作目录
  1. 第三方库模块:

Python 的第三方库提供了丰富的模块,可以扩展 Python 的功能。例如,使用numpy库来进行数组操作:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

c = a + b
print(c)  # 输出[5 7 9]
  1. 创建和使用自定义模块:

可以创建自定义的 Python 模块,例如在同一目录下创建一个名为test_module.py的文件,其中包含以下代码:

def hello():
    print('Hello, world!')

然后在另一个 Python 程序中导入这个模块并使用其中的函数:

import test_module

test_module.hello()  # 输出Hello, world!

二、包

Python 包是将多个模块组织在一起的一种方式。包可以使用一个目录来存储多个模块,并且需要在目录中创建一个名为__init__.py的文件来标识这是一个包。

Python 包的主要作用是在逻辑上组织 Python 模块以及子包。通过包可以将相关的模块和子包组织在一起,方便开发人员进行管理、维护和共享。包可以避免不同模块之间的命名冲突,同时也可以提供更加清晰的代码组织结构。

在使用 Python 包时,可以通过import语句将需要使用的模块导入到程序中。同时,也可以通过相对导入来访问同一包中的其他模块,或者来访问其他包中的模块。使用相对导入可以使得代码更加灵活,也可以避免模块搜索路径中的冲突问题。

一般来说,当需要编写大型的 Python 项目时,使用包可以大大简化模块的管理和维护。同时,包也可以帮助我们更好地组织和管理代码,提高代码的可读性和可维护性。因此,在需要组织多个相关模块时,建议使用 Python 包来进行组织和管理。


学习 Python 包的知识,需要包含以下内容:

  1. 什么是包?

Python 中的包是指将多个模块组织在一起的一种方式,可以将这些模块放在同一目录下,并在该目录下创建一个·init.py·文件来表示这是一个包。包可以方便地组织和管理模块,也可以避免模块名冲突。

  1. 包的引用

使用包中的模块时,需要使用import语句,例如:

import package.module

如果需要使用模块中的函数或变量,可以使用以下方式:

package.module.function()
package.module.variable

也可以使用from...import语句将模块中的函数或变量导入到当前命名空间中,例如:

from package.module import function, variable
  1. __init__.py文件

在包的目录下创建__init__.py文件时,可以在其中执行一些初始化操作,例如导入模块、设置变量等。__init__.py文件的内容可以为空,也可以包含任意 Python 代码。

  1. 包的层次结构

在 Python 中,包可以嵌套使用,形成层次结构。例如,可以创建一个名为mypackage的包,在mypackage中再创建一个名为subpackage的子包。在使用子包中的模块时,需要使用完整的包名,例如:

import mypackage.subpackage.module
mypackage.subpackage.module.function()
  1. 其他注意事项

在使用包时,需要注意以下几点:

  • 包名应该使用小写字母。
  • 模块名应该使用小写字母和下划线。
  • 包和模块的命名应该具有描述性,方便其他人理解和使用。
  • 如果一个包中的模块非常多,可以将它们分为多个子包,方便管理和维护。
  • Python会自动在一些默认目录中搜索包和模块,如果无法找到,可以将包所在目录添加到sys.path变量中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【 Python 全栈开发 - 语法基础篇 - 19 】模块和包 的相关文章

随机推荐

  • 百度 AI Studio——《高层API助你快速上手深度学习》课程学习1

    百度 AI Studio 高层API助你快速上手深度学习 课程学习1 该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 相关链接 飞桨 飞桨开源框架 PaddlePaddle 是一个易用 高效 灵活 可扩展的深度学习
  • c++学生信息管理系统(window控制台实现鼠标点击操作)

    翻起大一时写过的作业代码 一个学生信息管理系统 当时不会使用QT 不会MFC等库 只会c 但是又想做一个有界面的 能够实现鼠标操作的程序 于是绞尽脑汁查资料 自己造轮子 最终写出来了下面的这个现在连我自己也看不懂的代码 代码虽然有些长 单文
  • 图书管理系统服务器,图书管理系统的服务器

    图书管理系统的服务器 内容精选 换一换 eBackup备份管理系统支持对VMware环境下虚拟机的保护 您需要在系统中增加VMware受保护环境 从而对受保护环境中的虚拟机进行备份和恢复 增加VMware受保护环境时 如果虚拟机名称中包含
  • 回文序列

    题目描述 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列 例如 1 2 1 15 78 78 15 112 是回文序列 1 2 2 15 78 87 51 112 2 11 不是回文序列 现在给出一个数字序列 允许使用
  • Unity3D的断点调试功能

    Unity3D的断点调试功能 2013 03 14 16 27 51 分类 Unity教程 标签 unity monodevelop 断点调试 debug 举报 字号 订阅 断点调试功能可谓是程序员必备的功能了 Unity3D支持编写js和
  • C#获取字符串中括号中内容的正则表达式

    正则表达式为 lt w 2 如 string str1 发送奥点奥点 66 dasaa213434esdf Regex rex new Regex lt w 2 Match m rex Match str1 Console WriteLin
  • 【自然语言处理】ChatGPT 相关核心算法

    ChatGPT 相关核心算法 ChatGPT 的卓越表现得益于其背后多项核心算法的支持和配合 本文将分别介绍作为其实现基础的 Transformer 模型 激发出其所蕴含知识的 Prompt Instruction Tuning 算法 其涌
  • 使用jq让页面滚动到顶部

    以下是完整代码
  • 求任何时间下不同纬度太阳高度角的计算公式

    太阳高度角简称太阳高度 其实是角度 对于地球上的某个地点 太阳高度是指太阳光的入射方向和地平面之间的夹角 太阳 高度是决定地球表面获得太阳热能数量的最重要的因素 我们用h来表示这个角度 它在数值上等于太阳在天球地平坐标系中的地平高度 太阳高
  • 【111】支持向量机原理及python实现

    内容目录 一 基本概念二 鸢尾花实验三 乳腺癌检测实验 一 基本概念 024 SVM有监督学习LinearSVC LinearSVR SVC SVR参数解释 线性支持向量机 在超平面确定的情况下 可以相对地表示点距离超平面的远近 对于两类分
  • sublime Text3 自定义配色方案

    自定义配色方案地址 使用引导 首先 点击General gt background gt 修改一般 txt文件的默认背景 护眼的RGB值 豆沙绿的rgb颜色 199 237 204 色调 85 饱和度 1 2 3 亮度 2 0 5 对应成1
  • 504. Base 7

    Given an integer return its base 7 string representation Example 1 Input 100 Output 202 Example 2 Input 7 Output 10 Note
  • Mysql实现行列转换

    mysql数据库如何实现行列转换 1 行转列 方案一 select name sum case when course java then grade end as java sum case when course C then grad
  • React 封装组件的一些心得(一)

    起因 最近公司业务不是那么多 就抽空写了下组件库的东西 然后看了很多组件库的源码 由于我这里封装的主要是 taro 移动端的组件 所以主要是参考了 antd mobile react vant tard 等组件库 然后根据他们的源码 整合出
  • openGL贝塞尔曲面细分

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一 贝塞尔曲面细分原理 二 代码 1 主程序c 效果 前言 现在让我们扩展我们的程序 使它将我们简单的矩形网格转换为贝塞尔曲面 细分网格 应该为我们提供了足够的顶点来对曲面
  • Sublime Text 2 添加到右键

    转载于 把Sublime Text 2 加入右键菜单 带图标 Edit with Sublime Text Sublime Text 2 是现在很受大家欢迎的编辑器了 不仅是在web前端 在书定简单的php Js等代码时 也是相当的好用 再
  • 注册ChatGPT时提示Oops! The email you provided is not supported

    问题描述 今天本想出一个ChatGPT的注册与使用的教程 结果上来吃了个闭门羹 之前我通过微软账号登录验证是没有问题的 但这次想使用另一个微软账号 结果提示Oops The email you provided is not support
  • JDBC编程的六大步骤

    1 注册驱动 把驱动程序类加载到内存中 利用反射机制 这里是利用反射机制去加载某个类的特性 并不是要获取这个镜像对象来操作 加载这个类就会让这个类中的static 被执行 这个静态代码块中的代码就是注册驱动的代码 String driver
  • top5数据高级分析必备的Python库

    top5数据高级分析必备的Python库 1 Pandas 2 Numpy 3 Matplotlib https blog csdn net qq 40985985 article details 119676953 4 Scikit 学习
  • 【 Python 全栈开发 - 语法基础篇 - 19 】模块和包

    文章目录 一 模块 二 包 在 Python 中 模块指的是一个包含 Python 代码的文件 它可以被其他 Python 程序导入和使用 模块通常包括一些函数 类和变量 可以用于执行特定的任务或实现特定的功能 而包指的是一个包含多个模块的