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 实现 贪吃蛇大作战 代码分享
Sep 07 Python
简单谈谈Python中的反转字符串问题
Oct 24 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
Python实现的凯撒密码算法示例
Apr 12 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
浅谈python常用程序算法
Mar 22 Python
python读文件的步骤
Oct 08 Python
pandas的相关系数与协方差实例
Dec 27 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
Python检测端口IP字符串是否合法
Jun 05 Python
解析Python 偏函数用法全方位实现
Jun 26 Python
一文解决django 2.2与mysql兼容性问题
Jul 15 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读取大文件示例分享(文件操作类)
2014/04/13 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
pandas中DataFrame修改index、columns名的方法示例
2019/08/02 Python
pymysql的简单封装代码实例
2020/01/08 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
2014年自愿离婚协议书
2014/10/10 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
质检员岗位职责范本
2015/04/07 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
详解nodejs内置模块
2021/05/06 NodeJs