在Python编程体系中from是最核心的保留关键字之一主要承担三大核心功能模块精准导入、生成器委托执行、异常链式追踪其中模块导入是最基础且高频的使用场景。作为模块导入的核心语法from...import...的设计初衷是解决全量导入的冗余问题它允许开发者从指定模块、包或对象中仅导入需要的函数、类、变量等元素到当前命名空间无需通过模块名前缀即可直接调用目标对象大幅简化代码书写。其基础语法格式为from module_name import item1, item2, ...支持单元素导入、多元素逗号分隔导入、别名设置as关键字、通配符全量导入*等多种变体。除模块导入外from在生成器场景下与yield组合为yield from语法用于在生成器函数中将部分执行权委托给子生成器自动处理值的双向传递、异常转发和返回值捕获是异步编程和流式数据处理的核心基础在异常处理场景中from可用于标识异常链明确异常的触发源头方便问题排查。二、from模块导入的核心用法与场景基础精准导入仅导入模块中指定的单个/多个对象避免加载无用代码。例如从math模块仅导入平方根函数和圆周率常量from math import sqrt, pi后续可直接调用sqrt(16)、print(pi)无需写math.sqrt()。别名导入解决命名冲突或简化长名称例如from numpy import array as np_array后续使用np_array即可调用numpy的数组创建函数避免与自定义的array变量冲突。相对导入仅用于包内部模块间的相互引用通过.表示当前包、..表示上级包例如from .utils import helper_func适用于大型项目的模块化开发。通配符导入from module import *会导入模块中所有非下划线开头的公开对象虽然书写便捷但极易引发命名空间污染仅在交互式测试、临时脚本等场景推荐使用生产环境严禁使用。三、from...import与import的核心差异对比维度import modulefrom module import name导入范围加载整个模块仅加载指定对象访问方式需通过module.name访问直接使用name访问命名冲突风险极低模块名天然隔离较高同名对象会覆盖本地定义代码简洁性较长需重复写模块前缀简洁适合高频调用单一对象适用场景需使用模块内多个对象、大型项目仅需使用少量对象、短脚本例如需要同时使用math模块的平方根、阶乘、三角函数时推荐使用import math通过math.sqrt()、math.factorial()明确来源若仅需使用sqrt函数使用from math import sqrt更简洁。四、实战代码示例模块导入场景# 示例1基础导入frommathimportsqrt,piprint(f16的平方根{sqrt(16)}圆周率{pi})# 示例2别名导入避免冲突fromrandomimportrandintasrand_intprint(f1-10随机数{rand_int(1,10)})# 示例3包内相对导入假设当前在package子模块中from.configimportDB_HOSTyield from生成器委托场景# 扁平化嵌套列表defflatten(nested_list):foriteminnested_list:ifisinstance(item,list):yieldfromflatten(item)# 委托给子生成器else:yielditemprint(list(flatten([1,[2,[3,4]],5])))# 输出[1, 2, 3, 4, 5]五、使用注意事项与最佳实践避免通配符导入from module import *会导入大量未知对象可能导致本地变量被覆盖例如from tkinter import *后自定义的Button变量会覆盖原生组件引发不可预期的错误。警惕命名冲突若导入的对象与本地变量同名本地定义会覆盖导入的对象例如from math import log后定义def log(msg):...后续调用log()将执行本地函数而非数学对数函数。循环导入问题若模块A导入模块B模块B又导入模块A会触发循环依赖报错可通过将导入语句移至函数内部、重构代码结构解决。导入顺序规范遵循「标准库→第三方库→本地模块」的顺序组间用空行分隔提升代码可读性。六、配套练习题基础题写出从datetime模块导入datetime类并获取当前时间的代码。辨析题以下代码的输出结果是什么为什么frommathimportsqrt sqrt10print(sqrt(16))实战题编写一个生成器函数使用yield from实现1-100所有偶数的输出。场景题什么场景下推荐使用import module而非from module import name请举例说明。七、总结from关键字是Python模块化编程的核心支撑合理使用可以大幅提升代码简洁性和开发效率但需注意规避命名冲突、通配符滥用等问题。在大型项目中优先使用import module保证代码可维护性在短脚本、高频调用单一对象的场景使用from...import简化代码同时掌握yield from等进阶用法才能充分发挥Python的模块化优势。
企业数字化 ERP 产品动态
相关推荐
WSL解决USB 串口连接问题与linux串口权限问题 WSL 2 运行在独立的轻量级虚拟机内,默认无法直接访问 Windows 宿主机的物理 COM 串口。解决该问题的标准方案是使用微软推荐的 usbipd-win 工具,通过 USB/IP 协议将 Windows 的物理 USB 串口穿透挂载到 WSL 2 中。
你的系统内核为 6.6.114.1-1࿰… · 2026/9/24 17:30:41
数字人 = AI 换脸 + 配音?聊聊数字人技术演进史 如果这篇文章对你有帮助,欢迎关注我的CSDN账号「来福猿」,
有问题可以在评论区留言,我会一一回复。引言:数字人不是简单的“换脸 配音”提到数字人,很多人的第一反应是“AI 换脸加一个配音”。这个说法虽然直观&#… · 2026/9/24 17:30:41
基于jsp+ssm的高校研招信息共享系统-附源码 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台… · 2026/9/24 17:30:40
近场声全息重建实战:从相位全息图到声源定位的避坑指南 简介:这份资源面向声学成像、近场声全息(NAH)方向的学习者与研究人员,聚焦声干涉获取声全息图、相位全息图解析与声场重建这一完整技术链路,适合具备一定信号处理与MATLAB基础、希望动手复现声场重建流程的读者。压缩包… · 2026/9/24 18:06:51
ConvLSTM视频分类实战:从模型搭建到避坑指南 简介:这份资源围绕卷积LSTM(ConvLSTM)展开,面向已具备CNN与RNN基础、希望将时空序列建模落地到图像序列任务的学习者与开发者,可用于视频预测、视频摘要、图像生成等场景的入门实践。压缩包为rar格式,仅含1… · 2026/9/24 18:06:51
2026年懒人沙发行业现状与靠谱厂家选择指南 懒人沙发基础科普:核心属性与应用范围懒人沙发是什么,核心属性与常见使用场景懒人沙发是区别于传统硬框沙发的柔性坐具,核心设计逻辑是弱化框架束缚,强调贴合身体的放松感,不同于传统沙发依靠木质或金属框架定型&#… · 2026/9/24 18:06:51
近场声全息NAH:相位全息图与声干涉重建声场实战 简介:这份资源面向声学成像、近场声全息与声场重建方向的学习者与研究人员,聚焦声干涉获取全息图、相位全息图解析及声场复振幅重建这一完整技术链路,适合具备信号处理与MATLAB基础、希望动手复现声全息算法的中高级读者。压缩包共2个文件&am… · 2026/9/24 18:06:51
TextGCN、TextING、LEAM完整复现:图神经网络文本分类实战与调参避坑 简介:面向自然语言处理课程期末大作业的Python项目包,完整复现TextGCN、TextING和LEAM三种经典文本分类模型,适合计算机相关专业在校生、教师及入门者参考学习。压缩包共91个文件,约806MB,核心为32个Python源码文件&am… · 2026/9/24 18:06:51
真实废弃物图像分类实战:4800张数据集与PyTorch迁移学习全流程 简介:生活中真实废弃物图像分类数据集是一份面向计算机视觉入门学习与垃圾分类应用开发的标注数据资源,包含约4800张真实场景图片,涵盖纸板、食品有机物、玻璃、金属、杂项垃圾、纸张、塑料、纺织品垃圾和植被等9个常见类别,适合用… · 2026/9/24 18:06:44
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44