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 相关文章推荐
git进行版本控制心得详谈
Dec 10 Python
Python中判断输入是否为数字的实现代码
May 26 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
python多线程分块读取文件
Aug 29 Python
python多进程并发demo实例解析
Dec 13 Python
opencv python图像梯度实例详解
Feb 04 Python
Python实现结构体代码实例
Feb 10 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 Python
django如何自定义manage.py管理命令
Apr 27 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正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
python操作MySQL数据库具体方法
2013/10/28 Python
Python中的类学习笔记
2014/09/23 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Python实现控制台输入密码的方法
2015/05/29 Python
Python list操作用法总结
2015/11/10 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python 动态加载的实现方法
2017/12/22 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
初三政治教学反思
2014/01/30 职场文书
体育口号大全
2014/06/18 职场文书
光荣之路观后感
2015/06/12 职场文书
如何撰写促销方案?
2019/07/05 职场文书