python系列教程227——使用import还是from

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写(有时候有空也会参与编写),所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

开门见山,我个人更推荐使用import。

有些同学可能认为from要高效一些。例如对于下面这一行代码

复制代码
from module import name1

有些同学可能认为只是把name1加载到了内存空间中。

其实不是这样的。这句语句也会将整个module全部加载到内存空间中。也就是说import和from都会将整个模块的加载到内存空间中,所以说它们在效率上是一样的。

我之所以推荐使用import,是因为我觉得from语句会有很多潜在的威胁。下面由我一一道来。

如果from语句复制过来的变量名与本文件中的变量名称同名。那么变量就会被悄悄的覆盖掉了。在下面写代码时,你以为你是用了这个变量,但其实他是另外一个变量。这个后果相当严重。就像在夜场里,你跟你女朋友去玩,碰巧有另外一个女的跟你女朋友穿了同样的衣服,你以为他是你女朋友,你上去就摸了一把,结果却不是你女朋友,摸错人了。后果可能会相当严重,要不就是进派出所,要不就是进医院。

另外一个潜在的威胁就是,当使用reload的时候。 From语句导入的变量可能依然引用着之前旧版本的值。有同学可能不太熟悉reload指令,简而言之他就是重新加载模块的意思。也就是说你以为你自己重新加载了模块,但是那些变量还是使用着之前旧版本模块的值。

当然也不是让大家完全不使用from语句。因为使用import语句的话,后面使用每个变量时都要在前面跟上模块名。而使用form语句就可以直接使用变量名,可以减少一些代码编写量。但是无论如何,我觉得在一个大型的多人协作的系统中,尽量使用inport语句,这样会避免很多潜在问题的发生,也有利于系统代码后期的维护。

你更喜欢使用import还是from呢?可以在评论区说说你的看法,大家来讨论讨论。

点赞,收藏,谢谢!

相关推荐
B站_计算机毕业设计之家7 小时前
豆瓣电影数据采集分析推荐系统 | Python Vue Flask框架 LSTM Echarts多技术融合开发 毕业设计源码 计算机
vue.js·python·机器学习·flask·echarts·lstm·推荐算法
渣渣苏7 小时前
Langchain实战快速入门
人工智能·python·langchain
lili-felicity8 小时前
CANN模型量化详解:从FP32到INT8的精度与性能平衡
人工智能·python
数据知道8 小时前
PostgreSQL实战:详解如何用Python优雅地从PG中存取处理JSON
python·postgresql·json
ZH15455891318 小时前
Flutter for OpenHarmony Python学习助手实战:面向对象编程实战的实现
python·学习·flutter
玄同7658 小时前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
User_芊芊君子8 小时前
CANN010:PyASC Python编程接口—简化AI算子开发的Python框架
开发语言·人工智能·python
白日做梦Q8 小时前
Anchor-free检测器全解析:CenterNet vs FCOS
python·深度学习·神经网络·目标检测·机器学习
喵手8 小时前
Python爬虫实战:公共自行车站点智能采集系统 - 从零构建生产级爬虫的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集公共自行车站点·公共自行车站点智能采集系统·采集公共自行车站点导出csv
喵手8 小时前
Python爬虫实战:地图 POI + 行政区反查实战 - 商圈热力数据准备完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·地区poi·行政区反查·商圈热力数据采集