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 数据加密代码
Dec 24 Python
Python增量循环删除MySQL表数据的方法
Sep 23 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
python实现点对点聊天程序
Jul 28 Python
实时获取Python的print输出流方法
Jan 07 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
浅析python redis的连接及相关操作
Nov 07 Python
python3 字符串知识点学习笔记
Feb 08 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 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
2020最新CPU的性能排名
2020/04/02 数码科技
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
一个实用的php验证码类
2017/07/06 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
js身份证验证超强脚本
2008/10/26 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
python中字符串类型json操作的注意事项
2017/05/02 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
python 实现list或string按指定分段
2019/12/25 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python气泡提示与标签的实现
2020/04/01 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
数控机床专业自荐信
2014/05/19 职场文书
个人欠款担保书
2014/05/20 职场文书
年检委托书
2014/08/30 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
个人先进事迹总结
2015/02/26 职场文书
升职自荐信范文
2015/03/27 职场文书