python入门开发笔记之模块、包介绍和相关介绍
发布日期:2025-05-13 01:31:50 浏览次数:2 分类:精选文章

本文共 1363 字,大约阅读时间需要 4 分钟。

模块与包

模块是什么?

在编写Python程序时,随着代码的不断增长,程序文件会变得越来越大,维护也越来越困难。为了提升代码的可维护性,Python采用了模块化的方式,将函数和代码分组管理。一个.py文件就称为一个模块(Module),可以包含多个函数和变量,方便其他模块引用。

模块的好处

  • 代码可维护性:将代码分成多个模块,一个模块完成一个功能,易于管理和维护。
  • 代码复用:模块可以被多次引用,减少重复代码。
  • 命名空间隔离:每个模块有独立的命名空间,避免命名冲突。
  • 模块的分类

    模块主要分为以下几种:

  • 内置标准模块:Python自带的模块,使用help('modules')查看。
  • 第三方开源模块:通过pip install安装,例如pip install paramiko
  • 自定义模块:自己创建的.py文件即为模块。
  • 模块的调用

    导入模块有多种方式:

    import module
    from module import xx
    from module.xx.xx import xx as rename
    from module.xx.xx import *

    注意:模块导入后,相当于在当前环境中执行该模块的代码。

    自定义模块

    创建自定义模块只需将.py文件保存即可,其他程序可通过导入使用。

    模块查找路径

    模块的查找路径决定了导入成功与否。运行以下命令查看当前路径:

    import sys
    print(sys.path)

    输出结果包括当前目录和系统路径,模块会从第一个路径开始搜索,直到找到目标模块。

    开源模块安装与使用

  • 安装:通过pip install直接安装,例如:
    pip3 install paramiko
  • 国内源:使用豆瓣源加速:
    sudo pip install -i http://pypi.douban.com/simple/ alex_sayhi
  • 使用:导入即可使用,例如:
    import paramiko
    ssh = paramiko.SSHClient()
    ssh.connect('192.168.1.108', 22, 'alex', '123')
  • 包(Package)

    为了管理多个模块,使用包(Package)进行划分。每个文件夹作为一个包,需包含__init__.py文件。

    touch crm/__init__.py

    模块间的导入

    crm/views.py中导入proj/settings.py,需将proj路径添加到sys.path

    import sys
    sys.path.append(BASE_DIR)
    from proj import settings

    绝对导入与相对导入

    • 绝对导入:from crm import admin
    • 相对导入:from .. import admin

    注意:相对导入需确保当前文件夹为有效包,且__init__.py存在。

    常见问题

    在跨模块导入时,可能出现ModuleNotFoundError,需确保路径正确且包结构合理。通过将父级路径添加到sys.path或调整包结构可解决问题。

    注意事项

    • 包需包含__init__.py,避免顶级入口文件。
    • 相对导入需谨慎,避免跨越顶级包。

    通过合理组织代码结构,模块间的导入可以顺利进行,提升代码管理效率。

    上一篇:python入门开发笔记继承与派生
    下一篇:python入门开发笔记之函数进阶

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月21日 19时32分57秒