Python高频面试题:python里面模块和包之间有什么区别?

大家好,我是锋哥。今天分享关于【Python高频面试题:python里面模块和包之间有什么区别?】面试题 。希望对大家有帮助;

Python高频面试题:python里面模块和包之间有什么区别?

在 Python 里,**模块(module)和包(package)**是组织代码的两种层次结构,它们有联系但概念不同。我给你梳理清楚:


1️⃣ 模块(Module)

  • 定义 :模块就是一个 Python 文件 (.py 后缀),里面可以包含函数、类、变量,也可以包含可执行代码。

  • 作用:

    • 组织代码,避免文件过大
    • 提供重用性
    • 可以被 import 导入
  • 例子:

    复制代码
    # math_utils.py
    def add(a, b):
        return a + b
    
    PI = 3.1415
  • 导入方法:

    复制代码
    import math_utils
    print(math_utils.add(2, 3))
    from math_utils import PI
    print(PI)

2️⃣ 包(Package)

  • 定义 :包是一个 包含 __init__.py 文件的文件夹,可以包含多个模块和子包。

  • 作用:

    • 组织模块,使其形成层级结构
    • 避免模块命名冲突
    • 支持命名空间管理
  • 结构示例:

    复制代码
    mypackage/
        __init__.py
        math_utils.py
        string_utils.py
        subpackage/
            __init__.py
            file_ops.py
  • 导入方法:

    复制代码
    from mypackage import math_utils
    from mypackage.subpackage import file_ops

3️⃣ 核心区别总结

特性 模块 包
本质 一个 .py 文件 一个包含 __init__.py 的文件夹
包含内容 函数、类、变量、可执行代码 模块或子包
作用 组织单个文件的代码 组织模块和子包,形成层级结构
导入方式 import module import package.module 或 from package import module

💡 小技巧:

  • Python 3.3+ 可以创建 不带 __init__.py 的命名空间包 ,但为了兼容性和清晰性,通常还是会加 __init__.py。
  • 包是模块的"集合",模块是包的"组成单元"。
相关推荐
半亩码田1 分钟前
C#转Python第4.7篇:logging:Python 的标准日志库
开发语言·python·c#
程序员老陆1 分钟前
从汇编层面理解 C++ 多线程
开发语言·c++·程序设计
谢亮_vipxieliang10 分钟前
深入理解 JavaScript 数据类型与类型转换
开发语言·javascript·ecmascript
IOT-Power18 分钟前
模板方法 + 策略模式
开发语言·c++
EatFan23 分钟前
2026 Rust 后端技术栈选型:Axum 0.8 + Tokio + SQLx 全链路怎么搭
开发语言·后端·rust·tokio·serde·axum·sqlx
外收内放23 分钟前
Python基础语法练习题(59-原始版本与优化版本)
开发语言·python
ASS-ASH26 分钟前
从力学与机械原理角度深度剖析:尊界V800刹车踏板支架断裂事件的技术逻辑
人工智能·python·数据可视化·机械工程·汽车安全·物理仿真·制动系统
xhy_070727 分钟前
AI 读了 .env,密钥会原样发给大模型吗?WES Code 的密钥打码(附实测)
人工智能·python·数据挖掘·flask·ai编程·wes code
2401_8888597127 分钟前
STM32H733 MPU、AXI、FMC学习
java·开发语言·stm32·spring
泡海椒34 分钟前
JQuick-Excel 实战:用 STYLE 配置单元格与区域样式
开发语言·python·excel