摘自python学习手册, 用于记录。

客户端可以执行import或from语句。如果模块还没有加载,这两个语句会去搜索、编译以及执行模块文件程序。主要差别在于,import会读取整个模块,所以必须进行定义后才能读取它的变量名;from将获取(或者是复制)模块特定的变量名。

import使一个变量名引用整个模块对象,因此必须通过模块名称来得到该模块的属性(例如,module1.printer)。而from会把变量名复制到另一个作用域,所以它就可以直接在脚本中使用复制后的变量名,而不用通过模块(例如,printer)。

from语句有破坏命名空间的潜质。如果使用from导入变量,而那些变量碰巧和作用域中现有变量重名,变量就会被悄悄的覆盖掉。使用import语句时就不存在这种问题,因为必须通过模块名才能获取其内容。不过,使用from时,只要你了解并预料到可能发生这种事,在实际情况下这就不是一个大问题了,尤其是当你明确列出导入变量名时(例如,from module import x, y, z)。

另一方面,和reload调用同时使用时,from语句有比较严重的问题,因为导入的变量名可能引用之前版本的对象。再者,from module import *形式的确可能破坏命名空间,让变量名难以理解,尤其是在导入一个以上的文件时。

比较务实的建议是:简单的模块一般倾向于使用import,而不是from。多数的from语句是用于明确列举想要的变量,而且限制在每个文件中只用一次from *形式。这样一来,任何无定义的变量名都可以认为是存在于from *所引用的模块内。当你必须使用两个不同模块内定义的相同变量名变量时,才真的必须使用import,这种情况下不能使用from。

python中from是什么意思_Python中import和from的一些事。。。相关推荐

  1. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  2. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  3. python post与get的区别_python中get和post有什么区别

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  4. python深复制与浅复制_Python中的深拷贝和浅拷贝详解

    要说清楚Python中的深浅拷贝,需要搞清楚下面一系列概念: 变量-引用-对象(可变对象,不可变对象)-切片-拷贝(浅拷贝,深拷贝) [变量-对象-引用] 在Python中一切都是对象,比如说:3, ...

  5. python运行mcmc为何老出错_python中mcmc方法的实现

    MCMC方法在贝叶斯统计中运用很多,MIT发布的EMCEE是实现的比较好的.介绍页面在下面.源代码中examples里的代码可以帮助理解各种功能,特别是line.py 列出了最小二乘法,最大似然法和M ...

  6. python的init有什么用_Python中 __init__.py的作用

    我们经常在python的模块目录中会看到 "__init__.py"  这个文件,那么它到底有什么作用呢? 1. 标识该目录是一个python的模块包(module package ...

  7. python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续

    上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...

  8. python计算数组元素的和_python中数组的运算

    Python中进行数组的运算需要调用NumPy包. 其官网是:http://www.numpy.org/​www.numpy.org NumPy是Python语言的一个扩充程序库.它支持高级大量的维度 ...

  9. python中格式化字符串的作用_python中字符串格式化的意义(化妆)

    格式 描述 %%百分号标记 #就是输出一个% %c字符及其ASCII码 %s字符串 %d有符号整数(十进制) %u无符号整数(十进制) %o无符号整数(八进制) %x无符号整数(十六进制) %X无符号 ...

  10. python中 r是什么意思_python中rb含义理解

    Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 文件使用方式标识 'r':默认值,表示从文件读取数据 'w':表示要向文件写入数据,并截断以前 ...

最新文章

  1. php函数:register_shutdown_function
  2. 通过grub硬盘安装centos7
  3. 在控制台中录入学生成绩,计算总分,最高分,最低分(Python)
  4. 微软获得O/R映射技术专利 业界担忧阻碍技术进展
  5. php教程目录,php基础入门篇-文件和目录操作_PHP教程
  6. mysql中的强制索引_MYSQL中常用的强制性操作(例如强制索引)
  7. [蓝桥杯]试题 基础练习 Huffuman树
  8. 大数据分析平台具备怎样的功能
  9. deep|Bayes(4)
  10. 需求:vue+svg实现连线功能
  11. 波兰表达式和逆波兰表达式
  12. 计算机指法标准,标准盲打指法练习
  13. JavaFX开发桌面,移动端,嵌入式权威指南(二)—— 如何应用JavaFX开发用户界面
  14. java获取时间(今天,昨天,上周第一天,本周第一天,本周最后一天)
  15. mj评[杜拉拉升职记]-8.5分
  16. 局域网下微信无法连接到服务器,微信无法连接到服务器怎么办
  17. 教程 | 阿克曼结构移动机器人的gazebo仿真(二)
  18. 【数学建模】基于matlab模拟疫情SEIRS模型【含Matlab源码 2214期】
  19. 获取Google PR值的代码!
  20. 什么是公链,私链,联盟链?

热门文章

  1. #sql server 导入excel数据报错 未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
  2. Vite(三)部署静态站点(wordpress与hugo与Vercel、CI/CD、Travis CI、GitLab CI)、环境变量与模式、服务端渲染(SSR)
  3. 20200425观《玄奘之路》心得
  4. Vue2项目引入vant报错问题解决export ‘isVNode‘ (imported as ‘isVNode‘)
  5. GOJS入门二 -如何节点添加图片
  6. 产品经理(16)#PC端设计
  7. 蛙泳、自由泳、仰泳、蝶泳,图解动画,教你游泳,不会游的看了包你学会!!!
  8. 软考中级 真题 2016年下半年 系统集成项目管理工程师 应用技术 下午试卷
  9. java神秘岛_我的世界1.4.2喵喵苍炎冒险整合包1.1含服务端(含IC,BC,暮色,神秘岛,,PAM世界等MOD)...
  10. 2021年特种作业操作证2021年焊工证熔化焊接与热切割考试题库解析