python12(模块 包) 发布时间:2026/8/7 10:09:44 模块与包在前文的基础上我们今天继续学习Python 的模块与包机制。Python 的模块与包是代码组织的核心工具其作用在于按功能职责对代码进行逻辑分区从而提升可维护性与可复用性。任何非 trivial 项目都不应将所有代码置于单一文件中否则将导致命名冲突、依赖混乱与调试困难。模块与包提供了清晰的层级收纳方案使代码结构条理分明。一、模块Module—— 一个文件即一个工具包模块在物理上对应一个.py文件文件名即为模块名。例如若创建tools.py则tools即为一模块其中可定义函数、变量、类等任意 Python 对象。导入方式Python 提供多种导入语法以适应不同场景importmodule1,module2# 导入整个模块调用时需加模块前缀module1.func()importmodule1asalias# 为模块指定别名简化后续引用frommoduleimportitem1,item2# 从模块中导入指定成员可直接使用成员名frommoduleimportitem1asalias# 导入并重命名成员frommoduleimport*# 导入模块中所有公开成员不推荐建议所有import语句应集中置于文件顶部以增强可读性。P.S.应避免使用from module import *该写法会将模块内所有名称导入当前命名空间极易导致名称覆盖且难以追踪标识符来源对调试与代码审查造成显著障碍。导入时的执行语义模块在被首次导入时其顶层代码会被完整执行一次等效于执行该.py文件。同一模块在后续导入中不会重复执行因为 Python 解释器会缓存已加载的模块对象存储在sys.modules中。二、模块搜索路径 —— 解释器定位模块的规则当执行import xxx时Python 会依照sys.path列表中的目录顺序依次查找目标模块其机制类似于按预定义的路径清单检索文件。importsysprint(sys.path)# 打印当前解释器的模块搜索路径列表若在所有路径中均未找到对应模块则引发异常ModuleNotFoundError: No module named xxx可通过向sys.path动态追加目录来扩展搜索范围但更规范的做法是使用虚拟环境或配置PYTHONPATH环境变量以避免干扰全局路径。三、__name__属性 —— 判别模块的执行上下文每个模块均内置属性__name__其取值由解释器根据执行上下文自动设定当该文件作为主程序直接运行时__name__被赋值为__main__。当该文件被其他模块导入时__name__取值为该模块的名称如tools。此特性为编写自测试代码提供了可靠机制。若希望在模块内嵌入测试用例且避免这些测试在导入时被触发可将测试逻辑置于条件判断中print(此行无论在直接运行还是导入时均会执行)if__name____main__:print(仅当该文件被直接运行时此分支内的代码才会执行)# 放置单元测试或演示代码else:print(该模块被导入测试代码未执行)如此一来导入者不会受到测试输出的干扰而开发者亦可直接运行文件进行独立验证达成关注点分离。四、包Package—— 将模块组织为文件夹层级当模块数量增长后将所有.py文件平铺于同一目录显然不符合工程规范。此时需引入包Package的概念。包在物理上对应一个文件夹其必要条件是包含一个名为__init__.py的文件该文件可为空也可写入包级别初始化代码。此文件向解释器声明该文件夹是一个包其中的子模块可按层级导入。包的核心价值命名空间隔离同一包内模块名不得重复但不同包允许存在同名模块如同不同目录下可存在同名文件有效避免全局命名冲突。功能分区按业务或技术职责将模块归入不同子包例如utils/、models/、views/这在大型项目中尤为关键有助于降低耦合、提高可维护性。包的导入语法包的导入使用点号.表示层级关系importpackage1,package2# 导入整个包较少使用通常导入包内具体模块importpackage1asalias# 为包指定别名frompackageimportmodule1,module2# 从包中导入指定模块frompackageimportmodule1asalias# 导入模块并重命名frompackage.moduleimportitem1,item2# 从包内某模块中导入具体成员frompackage.moduleimportitem1asalias# 导入成员并重命名示例目录结构myproject/ ├── __init__.py ├── utils/ │ ├── __init__.py │ └── string_helper.py └── data/ ├── __init__.py └── loader.py对应的导入示例frommyproject.utilsimportstring_helperfrommyproject.data.loaderimportload_data五、小结 —— 从数据到代码的递进封装层次纵观 Python 的设计其封装模型呈现出一致的递进层次形成从数据到代码的“套娃”式结构层级封装内容示例容器数据结构列表、字典、元组、集合函数可执行代码块def add(a, b): return ab类函数与数据的复合体class Dog: def bark(self): ...模块类、函数、变量的集合dog.py文件包多个模块的集合animals/文件夹内含__init__.py库多个包的集合通过pip安装的第三方依赖如requests、numpy简而言之模块是包的组成单元包是库的组成单元。小型项目可仅依赖若干模块而中大型项目必须严格设计包结构否则协作开发与后期维护将举步维艰。工程原则将全部代码堆砌于单一文件是不可取的初阶做法。掌握模块与包的组织方式是项目从原型演进为可交付软件的必要里程碑。如需进一步探讨欢迎随时交流。祝编码愉快。下图为本文知识点的思维导图示意 相关新闻 # 机器人第七轴选 PLX090 还是中空旋转平台?750W 伺服下的背隙、刚性与扭矩验证 机器人第七轴选 PLX090 还是中空旋转平台?750W 伺服下的背隙、刚性与扭矩验证 1. 第七轴的误差为什么会被放大? 第七轴带动的是机器人本体、底座、末端工装和工件。减速机、齿轮齿条或旋转机构中出现的微小间隙,传递到机械臂末端后… 2026/8/4 8:49:28 告别单调启动页!用Obsidian Homepage打造你的专属知识管理中心 告别单调启动页!用Obsidian Homepage打造你的专属知识管理中心 【免费下载链接】obsidian-homepage Obsidian homepage - Minimal and aesthetic template (with my unique features) 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-homepage 厌倦了… 2026/8/4 22:13:17 千笔AI与WPS AI对比评测:专科生学习助手选哪款? 1. 项目概述:AIGC工具对比评测作为一名长期关注生产力工具的技术博主,最近收到不少学生群体的咨询:在众多AIGC工具中,千笔AI和WPS AI这两款国产工具究竟该如何选择?特别是对专科院校的学生而言,这两款工具能… 2026/8/3 7:34:05 最新新闻 Docker 镜像构建的底层原理:从 Layer 到 Cache 的深度剖析 系列导读 你现在看到的是《Docker 高级实践与镜像优化:从入门到精通的工程化指南》的第 1/10 篇,当前这篇会重点解决:通过剖析镜像分层和缓存机制,让读者理解优化背后的原理,而非盲目套用技巧。 上一篇回顾:这是系列首篇,我们先把整体背景和问题边界搭起来。 下一篇预… 2026/8/7 14:47:18 Changedetection.io:免费开源网页监控工具的10个实战应用场景 Changedetection.io:免费开源网页监控工具的10个实战应用场景 【免费下载链接】changedetection.io Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, … 2026/8/7 14:47:18 C++编译期分支与复杂类型推导:if constexpr嵌套实战 1. 项目概述:当编译期分支遇上复杂类型推导 在C的模板元编程和泛型编程领域,我们常常需要根据不同的类型特性,推导出不同的结果类型或执行不同的逻辑分支。传统的做法依赖于 std::enable_if 、标签分发或者特化,代码往往变得冗长… 2026/8/7 14:47:18 独立站平台选哪个好?Shopify、WooCommerce、BigCommerce和外贸SaaS适合谁 独立站平台选哪个好?Shopify、WooCommerce、BigCommerce和外贸SaaS适合谁 企业选择独立站平台,已经从“能不能搭一个海外网站”进入到“能不能支撑交易、询盘、内容和长期运营”的阶段。独立站不只是页面,还可能涉及商品、订单、支付、物流、… 2026/8/7 14:47:18 181、YOLOv8改进实战:ONNX导出与图优化(常量折叠、算子融合),消除冗余计算节点 181、YOLOv8改进实战:ONNX导出与图优化(常量折叠、算子融合),消除冗余计算节点 今天要聊的这个话题,是我在部署YOLOv8到TensorRT时被狠狠教育了一课。当时模型在GPU上跑得挺欢,一上边缘设备直接卡成PPT,排查了一整天,最后发现是ONNX导出的图里塞满了冗余节点——Resha… 2026/8/7 14:47:18 PLC编程进阶:从基础逻辑到系统集成的工程化实战指南 1. 从“能跑”到“跑得好”:PLC编程进阶的必经之路 上一期我们聊了PLC编程的“从零到一”,让你手里的梯形图能亮起第一个灯,让电机能转起来。这就像学会了开车,能把车从A点挪到B点。但如果你要上路,要应对复杂的路况&a… 2026/8/7 14:42:18 日新闻 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属… 2026/8/7 0:01:21 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制。其目标是在多任务环境中实现公平性、高效性、响应性与吞吐量的平衡。常见的调度算法包括: 先来先服务(FCFS)… 2026/8/7 0:01:21 Cisco IOS XE 曝多个高危安全漏洞,企业网络设备面临远程攻击风险 最近思科发布了一则让不少网安从业者捏把汗的安全公告。旗下广泛部署的 Cisco IOS XE 软件被挖出多个严重漏洞,其中最狠的一个拿到了 CVSS 9.8 的满分级评分,几乎触顶。对于依赖思科设备支撑核心业务的企业来说,这绝不是可以拖到下季度再处理… 2026/8/7 0:01:21 周新闻 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/6 10:11:44 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/7 3:47:00 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/7 3:47:06 月新闻 【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/7 3:46:34 AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/7 3:46:40 AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/6 6:12:06
# 机器人第七轴选 PLX090 还是中空旋转平台?750W 伺服下的背隙、刚性与扭矩验证 机器人第七轴选 PLX090 还是中空旋转平台?750W 伺服下的背隙、刚性与扭矩验证 1. 第七轴的误差为什么会被放大? 第七轴带动的是机器人本体、底座、末端工装和工件。减速机、齿轮齿条或旋转机构中出现的微小间隙,传递到机械臂末端后… 2026/8/4 8:49:28
告别单调启动页!用Obsidian Homepage打造你的专属知识管理中心 告别单调启动页!用Obsidian Homepage打造你的专属知识管理中心 【免费下载链接】obsidian-homepage Obsidian homepage - Minimal and aesthetic template (with my unique features) 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-homepage 厌倦了… 2026/8/4 22:13:17
千笔AI与WPS AI对比评测:专科生学习助手选哪款? 1. 项目概述:AIGC工具对比评测作为一名长期关注生产力工具的技术博主,最近收到不少学生群体的咨询:在众多AIGC工具中,千笔AI和WPS AI这两款国产工具究竟该如何选择?特别是对专科院校的学生而言,这两款工具能… 2026/8/3 7:34:05
Docker 镜像构建的底层原理:从 Layer 到 Cache 的深度剖析 系列导读 你现在看到的是《Docker 高级实践与镜像优化:从入门到精通的工程化指南》的第 1/10 篇,当前这篇会重点解决:通过剖析镜像分层和缓存机制,让读者理解优化背后的原理,而非盲目套用技巧。 上一篇回顾:这是系列首篇,我们先把整体背景和问题边界搭起来。 下一篇预… 2026/8/7 14:47:18
Changedetection.io:免费开源网页监控工具的10个实战应用场景 Changedetection.io:免费开源网页监控工具的10个实战应用场景 【免费下载链接】changedetection.io Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, … 2026/8/7 14:47:18
C++编译期分支与复杂类型推导:if constexpr嵌套实战 1. 项目概述:当编译期分支遇上复杂类型推导 在C的模板元编程和泛型编程领域,我们常常需要根据不同的类型特性,推导出不同的结果类型或执行不同的逻辑分支。传统的做法依赖于 std::enable_if 、标签分发或者特化,代码往往变得冗长… 2026/8/7 14:47:18
独立站平台选哪个好?Shopify、WooCommerce、BigCommerce和外贸SaaS适合谁 独立站平台选哪个好?Shopify、WooCommerce、BigCommerce和外贸SaaS适合谁 企业选择独立站平台,已经从“能不能搭一个海外网站”进入到“能不能支撑交易、询盘、内容和长期运营”的阶段。独立站不只是页面,还可能涉及商品、订单、支付、物流、… 2026/8/7 14:47:18
181、YOLOv8改进实战:ONNX导出与图优化(常量折叠、算子融合),消除冗余计算节点 181、YOLOv8改进实战:ONNX导出与图优化(常量折叠、算子融合),消除冗余计算节点 今天要聊的这个话题,是我在部署YOLOv8到TensorRT时被狠狠教育了一课。当时模型在GPU上跑得挺欢,一上边缘设备直接卡成PPT,排查了一整天,最后发现是ONNX导出的图里塞满了冗余节点——Resha… 2026/8/7 14:47:18
PLC编程进阶:从基础逻辑到系统集成的工程化实战指南 1. 从“能跑”到“跑得好”:PLC编程进阶的必经之路 上一期我们聊了PLC编程的“从零到一”,让你手里的梯形图能亮起第一个灯,让电机能转起来。这就像学会了开车,能把车从A点挪到B点。但如果你要上路,要应对复杂的路况&a… 2026/8/7 14:42:18
“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属… 2026/8/7 0:01:21
调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制。其目标是在多任务环境中实现公平性、高效性、响应性与吞吐量的平衡。常见的调度算法包括: 先来先服务(FCFS)… 2026/8/7 0:01:21
Cisco IOS XE 曝多个高危安全漏洞,企业网络设备面临远程攻击风险 最近思科发布了一则让不少网安从业者捏把汗的安全公告。旗下广泛部署的 Cisco IOS XE 软件被挖出多个严重漏洞,其中最狠的一个拿到了 CVSS 9.8 的满分级评分,几乎触顶。对于依赖思科设备支撑核心业务的企业来说,这绝不是可以拖到下季度再处理… 2026/8/7 0:01:21
ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/6 10:11:44
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/7 3:47:00
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/7 3:47:06
【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/7 3:46:34
AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/7 3:46:40
AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/6 6:12:06