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。
  • 包是模块的"集合",模块是包的"组成单元"。
相关推荐
步行cgn24 分钟前
JSON.stringify 详解:把 JavaScript 对象变成 JSON 字符串
开发语言·javascript·json
速易达网络37 分钟前
如何“训练”一个 .task 模型
python
PiaoKe___40 分钟前
云手机技术解析:从 ARM 虚拟化到 Python 自动化实战
python·智能手机·自动化
学习论之费曼学习法1 小时前
无人值守AI内容矩阵实战(10):Windows 上让 Python 进程 7×24 活着
人工智能·windows·python·矩阵·powershell·进程守护
Soneswy1 小时前
C++基础篇——类与对象(中)
开发语言·c++
CoderYanger1 小时前
Java EE 进阶:5. Spring IoC&DI(第二弹):Spring IoC
java·开发语言·spring boot·spring·面试·职场和发展·java-ee
Norna1 小时前
锁文件里明明有哈希,PDM 为什么说没有?
python
大侠在此在在此1 小时前
我花了不到1块钱,用python把自己一年的1500次会话做成了个人知识库
python·llm
Jino1 小时前
900×2100 的门洞,展开面积却是 3.4 ㎡ —— 不锈钢核价引擎的七条口径
python
贝壳6901 小时前
Python 布尔数组选型:list、numpy.bool_、bitarray、RoaringBitmap、bool-hybrid-array 各管一段
python