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呢?可以在评论区说说你的看法,大家来讨论讨论。

点赞,收藏,谢谢!

相关推荐
虹科网络安全9 小时前
艾体宝干货 | Redis Python 开发系列#6 缓存、分布式锁与队列架构
redis·python·缓存
猎人everest9 小时前
Django Rest Framework (DRF) 核心知识体系梳理与深度讲解
后端·python·django
卿雪9 小时前
缓存异常:缓存击穿、缓存穿透、缓存雪崩 及其解决方案
java·数据库·redis·python·mysql·缓存·golang
背心2块钱包邮9 小时前
第3节——differentiation rules(求导法则)
人工智能·python·matplotlib·scipy
white-persist9 小时前
【攻防世界】reverse | answer_to_everything 详细题解 WP
c语言·开发语言·汇编·python·算法·网络安全·everything
高频交易dragon9 小时前
python缠论形态分析过程
开发语言·网络·python
算法与编程之美9 小时前
理解pytorch中的L2正则项
人工智能·pytorch·python·深度学习·机器学习
R-G-B9 小时前
【P19 机器学习-分类算法及应用实践】手写数字识别(KNN)
python·机器学习·分类·手写数字识别·knn算法
Eric.Lee20219 小时前
ubuntu系统在bashrc文件中对conda进行启用设置
linux·运维·python·ubuntu·conda
观音山保我别报错9 小时前
变量作用域
开发语言·python