Python中几种导入模块的方式总结


Posted in Python onApril 27, 2017

模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入。常见的方式有如下几种:

1 . import

>>> import sys
>>> sys.path
['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages']

最常见的方式,直接将要导入的模块名称写在后面导入。

2 .from .. import ..

与import类似,只是更明确的要导入的方法或变量,比如:

>>> from sys import path
>>> path
['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages']

但是会造成命名空间的污染,更推荐使用import。

3 . 用名称字符串导入模块

我们可能想这样导入模块:

>>> import "sys"
SyntaxError: invalid syntax

python import接收的是变量而不是字符串,那将”sys”赋值给一个变量呢?

>>> x="sys"
>>> import x
Traceback (most recent call last):
 File "<pyshell#4>", line 1, in <module>
  import x
ImportError: No module named 'x'

这样也不行,这样做的意思是导入名为x的模块而非x代表的sys模块。

我们需要用到exec函数:

>>> x="sys"
>>> exec("import "+ x)
>>> sys.path
['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages']

将导入语句构建成字符串并传递给exec函数执行。

exec缺点是每次执行都要编译,运行多次会影响性能。

更好的方式是使用__import__ 函数。

>>> x="sys"
>>> sys = __import__(x)
>>> sys.path
['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages']

这种方式需要一个变量保存模块对象,以便后续调用。

以上这篇Python中几种导入模块的方式总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python2实现的LED大数字显示效果示例
Sep 04 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
儿童python练习实例
May 27 Python
python实现超简单的视频对象提取功能
Jun 04 Python
python set内置函数的具体使用
Jul 02 Python
Python八皇后问题解答过程详解
Jul 29 Python
python实现贪吃蛇双人大战
Apr 18 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
浅析python实现动态规划背包问题
Dec 31 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 #Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 #Python
Python中生成Epoch的方法
Apr 26 #Python
python 网络编程详解及简单实例
Apr 25 #Python
python 全文检索引擎详解
Apr 25 #Python
window下eclipse安装python插件教程
Apr 24 #Python
Python处理PDF及生成多层PDF实例代码
Apr 24 #Python
You might like
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
Python中一些深不见底的“坑”
2019/06/12 Python
python实现复制文件到指定目录
2019/10/16 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
大学毕业生个人自荐信范文
2014/01/08 职场文书
大学生演讲稿范文
2014/01/11 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
python实现进度条的多种实现
2021/04/29 Python
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
python中%格式表达式实例用法
2021/06/18 Python
Python读写yaml文件
2022/03/20 Python