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.modulefrom package import module

💡 小技巧

  • Python 3.3+ 可以创建 不带 __init__.py 的命名空间包 ,但为了兼容性和清晰性,通常还是会加 __init__.py
  • 包是模块的"集合",模块是包的"组成单元"。
相关推荐
原来是猿30 分钟前
深入理解 C++ unordered_map 与 unordered_set
开发语言·c++
满天星830357731 分钟前
【Qt】信号和槽 (一)(概述和基本使用)
开发语言·c++·qt
l1t40 分钟前
DeepSeek总结的 waddler,一个 Go 语言编写的从 YAML 文件运行的 ETL 管道
开发语言·golang·etl
myenjoy_11 小时前
串口采集与 Modbus RTU——字节流里的时间敏感博弈
网络·python·网络协议·tcp/ip
FlyWIHTSKY1 小时前
React 19 + Next.js 16(App Router)项目中集成 MSW
开发语言·javascript·vue.js
易舟云财务软件1 小时前
财务 AI Python 实战:从自动化报表到智能风控的应用场景
人工智能·python·自动化
武雄(小星Ai)1 小时前
一个模型干五件事:拆解 NVIDIA Cosmos 3 的物理 AI 全模态架构
人工智能·python·agent
Mr.Daozhi1 小时前
跨境电商选品完整流水线:Google Trends筛词+Meta广告分析,CLI工具设计实战
开发语言·爬虫·python·跨境电商·工具链·选品
多彩电脑1 小时前
Swift里字符串的索引
开发语言·swift
SoftLipaRZC1 小时前
C语言预处理详解:从宏定义到条件编译
c语言·开发语言