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

点赞,收藏,谢谢!

相关推荐
baidu_3409988213 小时前
golang如何集成Keycloak身份认证_golang Keycloak身份认证集成技巧
jvm·数据库·python
abc123456sdggfd13 小时前
为什么宝塔面板安装phpMyAdmin后打不开_检查PHP版本绑定与888端口是否放行
jvm·数据库·python
qq_4138474013 小时前
SQL利用子查询实现复杂条件排序_嵌套逻辑实现业务规则
jvm·数据库·python
2201_7610405913 小时前
Redis如何应对缓存服务器网络分区带来的雪崩
jvm·数据库·python
2401_8359568113 小时前
如何实现SQL存储过程动态排序_配合参数过滤与排序逻辑
jvm·数据库·python
dragen_light13 小时前
1.ROS2-Install
c++·python·ros
m0_6765443813 小时前
JavaScript中enumerable属性对对象遍历的影响
jvm·数据库·python
Absurd58713 小时前
SQL如何用SQL子查询实现关联报表生成_嵌套逻辑关联多表
jvm·数据库·python
m0_5145205713 小时前
CSS如何解决Less与CSS兼容性问题_通过配置文件实现平滑过渡与混合开发
jvm·数据库·python
HHHHH1010HHHHH13 小时前
JavaScript中利用IIFE创建私有命名空间的经典方案
jvm·数据库·python