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
  • 包是模块的"集合",模块是包的"组成单元"。
相关推荐
jaysee-sjc1 小时前
【苍穹外卖】Day01:从零认识企业级项目开发
java·开发语言·数据库·mysql·spring·intellij-idea·mybatis
ThornArmor1 小时前
《向内深潜,向外飞掠》
c语言·开发语言·c++·vim·visual studio
传奇开心果编程1 小时前
【仓颉语言基础语法学与练】第1课:从零开始
开发语言·学习·华为
君顾11 小时前
本地AI错题纠正小程序:端侧推理与错题闭环实战
java·开发语言·错题
吠品1 小时前
Python 写入 Excel 的两种主流方案实际用法总结
c语言·开发语言·算法
计算机源码社1 小时前
基于大数据的全球温室气体排放燃料结构与碳强度评估研究-基于Spark的全球温室气体排放多维度检测与评估分析
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计
邪修king1 小时前
Re:Linux 系统篇(三十一):库的制作与原理Chapter2:静态链接与程序加载 —— 从磁盘 ELF 到运行中进程的完整旅程
android·linux·运维·开发语言
geovindu1 小时前
rust: Factory Method Pattern
开发语言·设计模式·rust·工厂方法模式·创建型模式
eybk1 小时前
用Kivy制作手机相片分类局域网传送工具,还能传输数据库文件
开发语言·python
企业数字化笔记1 小时前
固定资产还有借用记录能报废吗?Java前置检查、停止折旧与SQL验收
java·开发语言·sql