7 Python的模块和包

这篇具有很好参考价值的文章主要介绍了7 Python的模块和包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

        在上一节,我们介绍了Python的异常处理,包括:异常、异常处理、抛出异常、用户自定义异常等内容。在这一节中,我们将介绍Python的模块和包。Python的模块(Module)和包(Package)是Python的两个主要概念,它们都是用来组织和封装代码的机制。

什么是模块

        模块实际上就是一个Python文件,它包含了Python对象定义和Python语句。文件名是模块名加上“.py”后缀,比如:如果一个文件名为my_module.py,那么它就被称为my_module模块。模块让你能够有逻辑地组织你的Python代码段,把相关的代码分配到一个模块里能让你的代码更好用、更易懂。模块能定义函数、类和变量,模块里也能包含可执行的代码。模块可以被别的程序引入,以使用该模块中的函数、类等功能。

        Python中的模块可以分为两种:内置模块和第三方模块。内置模块是Python自带的模块,比如:datetime(日期和时间处理)、math(数学运算)、random(随机数生成)等。第三方模块则是由Python社区或开发者开发的模块,在Python的官方网站上可以找到。

        使用模块的好处有很多,主要包括:提高代码复用性、代码组织结构更加清晰、降低程序耦合性、提高程序的安全性等。

导入模块

        在Python中,可以使用import语句来导入模块,这使得你可以使用其他模块中定义的函数、类和变量。导入模块时,Python会执行该模块中的所有顶层代码。如果模块本身又导入其他模块,那么这些导入的模块也会一并被执行。

# 导入os模块
import os
# 导入math模块
import math

# 使用os模块中的变量
print(os.curdir)

# 使用math模块中的函数
print(math.pow(2, 4))

        在上面的示例代码中,os和math都是Python提供的标准库模块。os模块提供了与操作系统交互的函数,math模块则提供了许多与数学计算相关的函数。

        如果你只想导入模块中的特定函数和变量,可以使用from import的语法。如果你想导入模块中的所有内容,可以使用from import *的语法。

# 从math模块导入log10函数
from math import log10
# 从os模块导入所有内容
from os import *

# 使用math模块的log10函数
print(log10(100))
# 使用os模块的cpu_count函数
print(cpu_count())

自定义模块

        除了导入系统的内置模块,还可以创建自定义模块,并导入这个自定义模块。比如:你有一个名为my_module.py的Python文件,其中定义了一个名为为my_func的函数。

# my_module.py文件

def my_func(a):
    print(a)

        你可以在另一个Python文件main.py中导入my_module模块,并使用该模块中的函数。

# main.py文件
import my_module

my_module.my_func('hello CSDN')

__name__

        在Python中,__name__是一个特殊变量,用于表示一个模块的名称。当一个模块被直接运行时,__name__的值为__main__。当该模块被导入为库或者子模块时,__name__的值将是该模块的名称。

        这个变量常用于在模块中执行特定的代码,只有当该模块被直接运行时才执行。在一个模块中,可以使用if __name__ == "__main__"来确保后面的代码只在该模块被直接运行时执行,而在其他模块中被导入时则不执行。比如:有一个模块my_sky,对应的my_sky.py文件如下。

# my_sky.py

def sky_blue():
    print('sky blue')

if __name__ == '__main__':
    sky_blue()

        直接运行my_sky.py时,会执行sky_blue函数并输出“sky blue”。但在另一个脚本中导入my_sky.py时,并不会执行sky_blue函数。这个特性常用于编写可执行脚本或测试脚本,只有在直接运行该脚本时,才会执行某些操作。

什么是包

        包是一个包含多个模块的目录,该目录下必须包含一个名为__init__.py的文件,该文件可以为空。包可以嵌套,即一个包可以包含多个子包。包提供了组织模块的机制,使得模块能够按照目录结构进行分类,便于管理和查找。包将相关的代码文件和资源文件打包在一起,从而形成一个独立的单元。

        Python的包可以包含:Python模块、其他包、包特定的数据文件和配置文件。

创建包

        要创建一个Python包,需要创建一个文件夹,通常以该包的名称命名,并在该文件夹中包含一个__init__.py文件。这个__init__.py文件是一个特殊的文件,当一个包被导入时,该文件会自动执行,这可以用于初始化该包或定义在该包中导出的函数和变量。包中还可以包含其他的.py文件,这些文件中包含函数、类、变量等包的特定代码。

        创建一个Python包的具体步骤如下:

        1、创建一个文件夹,作为包的根目录,并命名为包的名字,包名通常使用小写字母和下划线。

        2、在该文件夹中创建一个名为__init__.py的文件。这个文件是一个特殊的文件,当一个包被导入时,该文件会自动执行。这个文件可以是空的,也可以包含一些初始化代码,或者定义在该包中导出的函数和变量。

        3、在该文件夹中创建其他的Python文件和文件夹,用于包含包的具体代码和资源。

        4、如果需要在包的元数据中使用一些特殊的标记或者依赖项,可以在该文件夹中创建一个名为setup.py的文件,用于描述该包的元数据和依赖项。

        下面是一个简单的示例,展示了如何创建一个包含两个模块的Python包。

        1、创建一个名为my_package的文件夹,作为包的根目录。

        2、在该文件夹中创建两个Python文件,分别为module1.py和module2.py。

        3、在module1.py中定义一个名为func1的函数。

# module1.py文件
def func1():  
    return "Hello from module 1"

        4、在module2.py中定义一个名为func2的函数。

# module2.py文件
def func2():  
    return "Hello from module 2"

        5、在my_package文件夹中创建一个名为__init__.py的文件,用于导出在模块中定义的函数。

# __init__.py文件
from .module1 import func1
from .module2 import func2

        6、现在,你可以在其他Python代码中使用这个包了。

import my_package

# 输出:Hello from module 1
print(my_package.func1())
# 输出:Hello from module 2
print(my_package.func2())

导入包

        要使用一个Python包,需要使用import语句来导入该包,并使用.操作符来访问该包中的函数、类和变量等。比如:有一个名为my_package的包,其中包含一个名为my_module的模块,my_module模块中包含一个名为my_func的函数,可以使用下面的示例代码来使用该包。

import my_package.my_module

my_package.my_module.my_func()

        在Python中,导入包的具体步骤如下:

        1、确保已经将包安装到你的Python环境中,可以使用pip命令来安装包,比如:pip install package_name。

        2、使用import语句导入包,可以使用点号来指定包的路径。在下面的示例代码中,将导入package包中的module模块。

import package.module

        3、如果只想导入包中的某个模块或函数,可以使用from import语句。在下面的示例代码中,将导入package包中的module模块,并可以直接使用该模块中的函数和变量。

from package import module

        4、如果需要导入包中的多个模块或函数,可以使用逗号分隔它们。在下面的示例代码中,将导入package包中的module1、module2、func1和func2。

from package import module1, module2, func1, func2

        注意:包和模块的名称,必须与文件系统中的目录结构相对应。如果包中没有包含__init__.py文件,则不能将其视为一个包。此时,需要手动将该目录添加到Python的模块搜索路径中才能正常使用。文章来源地址https://www.toymoban.com/news/detail-680528.html

到了这里,关于7 Python的模块和包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python实验五 函数、模块和包

    2024年02月10日
    浏览(53)
  • CMake:检测python模块和包

    上一篇,我们基本了解了如何去检测 python 的解释器和 python 库。通常,代码是依赖于特定的 python 模块,无论是 python 工具、嵌入 python 的程序,还是扩展 python 的库。例如, numpy 包。依赖于 python 模块或包的项目中,确定满足对这些 python 模块的依赖非常重要。 项目地址:

    2024年02月13日
    浏览(38)
  • Python的模块(module)和包(package)

    Python 的模块(module) 和包(package) 概述 在Python中,简单地说,模块(Module)一般是单个python文件;包(package)由分层模块(Module)构成——相关目录里的模块构成。Python中的库(library)是参考其它编程语言的说法,既可以是一个模块也可以是一个包,换言之是对模块或包的通

    2024年02月09日
    浏览(80)
  • Python模块和包:sys模块、os模块和变量函数的使用

    模块化指将一个完整的程序分解为一个一个小的模块,通过将模块组合,来搭建出一个完整的程序。模块化具有方便开发、维护和复用的优点。在Python中,每个py文件就是一个模块。 在一个模块中引入外部模块有两种方式: import 模块名 和 import 模块名 as 模块别名 。后者可以

    2024年02月08日
    浏览(34)
  • 【100天精通python】Day15:python 第三方模块和包,模块如何以主程序形式执行

    目录 1 常用的第三方模块 2. 第三方模块的安装和使用 2.1 安装第三方模块:

    2024年02月15日
    浏览(55)
  • Python3.11教程3:模块和包(pip/conda)、文件系统(os/ shutil/json/pickle/openpyxl/xlrd)

    本文相关链接: Python官网、Python 3.11.5 中文文档、慕课:Python语言程序设计、Real Python :Write More Pythonic Code Miniconda、Anaconda、conda文档 Python 标准库官方文档、 《os — 多种操作系统接口》、《os.path — 常用路径操作》、《shutil — 高阶文件操作》 Pandas文档《Input/output》、 op

    2024年02月09日
    浏览(53)
  • 【python】python下的跨目录import模块

    在使用C++语言进行项目开发时,如果需要调用其他目录的头文件时,直接#include \\\"xxx/xxx/xxx/xxx.h\\\"就可以实现,但是在python下的用法不大一样。 这个最简单,也最常见。假设目录格式如下,运行的是father.py,希望在father.py中import son.py: 假设我们当前运行的是文件层级较深的so

    2024年02月14日
    浏览(55)
  • Python中import模块导入的实现原理

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 专栏:《python从入门到实战》 什么是模块 一个.py文件就是一个模块,即Module。 模块分为三种:python标准库、

    2024年02月12日
    浏览(39)
  • 30 Python的matplotlib模块

    概述         在上一节,我们介绍了Python的pandas模块,包括:Series、DataFrame、数据读取和写入等内容。在这一节,我们将介绍Python的matplotlib模块。matplotlib模块是一个Python的2D绘图库,可以实现各种类型的图形绘制,包括:线图、柱状图、饼图、散点图等。matplotlib支持各种

    2024年02月08日
    浏览(48)
  • 挑战30天学完Python:Day12 模块

    🎉 本系列为Python基础学习,原稿来源于 30-Days-Of-Python 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,或仅了解Python一点知识,但又没有系统学习的使用者。总之如果你想提升自己的Python技能,欢迎

    2023年04月27日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包