Python学习之路-模块和包

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

Python学习之路-模块和包

模块

简介

模块是 Python 程序架构的一个核心概念。每一个以扩展名 py 结尾的 Python 源代码文件都是一个模块,模块名同样也是一个标识符,需要符合标识符的命名规则。在模块中定义的全局变量、函数、类都是提供给外界直接使用的工具。模块就好比是工具包,要想使用这个工具包中的工具,就需要先导入这个模块。

导入方式

  • import导入:是一次性把模块中 所有工具全部导入

    import 模块名
    
    • 在导入模块时,每个导入应该独占一行
    • 通过 模块名. 使用模块提供的工具

    {{< admonition tip “提示” true >}}

    开发时 import 代码应该统一写在代码的顶部,更容易及时发现冲突。一旦发现冲突,可以使用 as关键字给其中一个工具起一个别名:import 模块名 as 模块别名

    {{< /admonition >}}

  • from...import导入:如果希望从某一个模块中,导入部分工具,就可以使用 from ... import 的方式。import 模块名

    # 从 模块 导入 某一个工具
    from 模块名1 import 工具名
    

    导入之后不需要通过 模块名.可以直接使用模块提供的工具。

    {{< admonition warning “注意” true >}}

    如果两个模块,存在同名的函数,那么后导入模块的函数,会覆盖掉先导入的函数

    {{< /admonition >}}

  • from…import *(不推荐)

    # 从 模块 导入 所有工具
    from 模块名1 import *
    

    {{< admonition warning “注意” true >}}

    这种方式不推荐使用,因为函数重名并没有任何的提示,出现问题不好排查

    {{< /admonition >}}

模块的搜索顺序

Python 的解释器在导入模块时,会先搜索当前目录指定模块名的文件,如果有就直接导入,如果没有,再搜索系统目录。

{{< admonition note “补充” true >}}

可以通过sys.path给出的列表查看目录里依次查找要导入的模块文件,列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序。

可以通过sys.path.append('xxx')的方式添加路径,通过sys.path.insert(0, 'xxx')可以确保先搜索这个路径

想重新导入模块可以reload导入,语法如下

from imp import reload
reload(模块名)

{{< /admonition >}}

{{< admonition warning “注意” true >}}

在开发时,给文件起名,不要和系统的模块文件重名。

{{< /admonition >}}

{{< admonition tip “提示” true >}}

Python 中每一个模块都有一个内置属性 __file__ 可以查看模块的完整路径。

{{< /admonition >}}

__name__ 属性

__name__Python 的一个内置属性,记录着一个字符串。如果是被其他文件导入的,__name__就是模块名。如果 是当前执行的程序__name____main____name__属性可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不会被执行!

{{< admonition note “补充” true >}}

在导入时,模块中所有没有任何缩进的代码都会被执行一遍!在实际开发中通常会在模块下方增加一些测试代码仅在模块内使用,被导入到其他文件中不需要执行。可以在if __name__ == "__main__":下方缩进中编写测试代码,从而不会被执行

{{< /admonition >}}

包是一个包含多个模块的特殊目录,目录下有一个特殊的文件:__init__.py。包名的命名方式和变量名一致。使用 import 包名 可以一次性导入包中所有的模块

发布模块

如果希望自己开发的模块,分享给其他人,可以按照以下步骤操作:

  • 创建 setup.py

    from distutils.core import setup
    
    setup(name="hm_message",  # 包名
          version="1.0",  # 版本
          description="itheima's 发送和接收消息模块",  # 描述信息
          long_description="完整的发送和接收消息模块",  # 完整描述信息
          author="itheima",  # 作者
          author_email="itheima@itheima.com",  # 作者邮箱
          url="www.itheima.com",  # 主页
          py_modules=["hm_message.send_message",
                      "hm_message.receive_message"])
    

    {{< admonition note “补充” true >}}

    有关字典参数的详细信息,可以参阅官方网站

    {{< /admonition >}}

  • 构建模块

    $ python3 setup.py build
    
  • 生成发布压缩包

    $ python3 setup.py sdist
    

    {{< admonition warning “注意” true >}}

    要制作哪个版本的模块,就使用哪个版本的解释器执行!

    {{< /admonition >}}

  • 安装模块

    $ tar -zxvf hm_message-1.0.tar.gz 
    $ sudo python3 setup.py install
    

    {{< admonition note “补充” true >}}

    卸载模块

    直接从安装目录下,把安装模块的 目录 删除就可以

    $ cd /usr/local/lib/python3.5/dist-packages/
    $ sudo rm -r hm_message*
    

    {{< /admonition >}}

安装第三方模块

第三方模块通常是指由知名的第三方团队开发的并且被程序员广泛使用的Python包 / 模块。例如 request 就是一套非常成熟的HTTP 服务模块。pip 是一个现代的,通用的 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载等功能。

安装和卸载命令如下:文章来源地址https://www.toymoban.com/news/detail-790631.html

$ sudo pip3 install requests
$ sudo pip3 uninstall requests

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

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

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

相关文章

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

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

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

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

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

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

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

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

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

    2024年02月15日
    浏览(32)
  • 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日
    浏览(42)
  • Lua学习笔记之迭代器、table、模块和包、元表和协程

    迭代器是一种对象,它能够来遍历标准库模板容器中的部分或全部元素,每个迭代器对象代表容器中确定的地址,在Lua中迭代器是一种支持指针类型的结构,他可以遍历集合的每一个元素。 泛型for自己内部保存迭代函数,实际上保存三个值:迭代函数、状态常量、控制变量。

    2024年03月09日
    浏览(50)
  • Python学习之路-Python操作redis

    在Python中操作 Redis 可以直接用 redis 模块 安装Redis的有3种方式https://github.com/andymccurdy/redis-py 第一种:进⼊虚拟环境py_django,联⽹安装包redis 第二种:进⼊虚拟环境py_django,联⽹安装包redis 第三种:到中⽂官⽹-客户端下载redis包的源码,使⽤源码安装: 下载:执行 wget https:/

    2024年01月22日
    浏览(31)
  • Python学习之路-函数进阶

    函数根据有没有参数以及有没有返回值,可以相互组合,一共有4 种组合形式:无参数,无返回值;无参数,有返回值;有参数,无返回值;有参数,有返回值。 {{ admonition tip “提示” true }} 定义函数时,是否接收参数,或者是否返回结果,是根据实际的功能需求来决定的!

    2024年01月23日
    浏览(32)
  • Python学习之路-编码风格

    Python的设计哲学是“优雅”、“明确”、“简单”。它的重要准则被称为“Python之禅”。 Python之禅 又名PEP 20,在Python解释器内运行 import this 可以获得完整的列表,下面是我的翻译与解读: Python开发的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python程序

    2024年01月20日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包