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字符串替换示例
Apr 24 Python
利用python生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
python如何为创建大量实例节省内存
Mar 20 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
python 数据提取及拆分的实现代码
Aug 26 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
php链表用法实例分析
2015/07/09 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
js实现选项卡效果
2020/03/07 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
python实现定时发送qq消息
2019/01/18 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
Java中实现多态的机制
2015/08/09 面试题
自动化专业毕业生自荐信
2013/11/01 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
三孔导游词
2015/02/05 职场文书
部队个人年终总结
2015/03/02 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
MySQL锁机制
2021/04/05 MySQL
Python提取PDF指定内容并生成新文件
2021/06/09 Python