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发送邮件示例(支持中文邮件标题)
Feb 16 Python
Django发送html邮件的方法
May 26 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
Jul 30 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
详解python中Numpy的属性与创建矩阵
Sep 10 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
python 字典有序并写入json文件过程解析
Sep 30 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
Python实现简单的猜单词小游戏
Oct 28 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
Python Django获取URL中的数据详解
Nov 01 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
JavaScript中this详解
2015/09/01 Javascript
JS打印组合功能
2016/08/04 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
Python中关于使用模块的基础知识
2015/05/24 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
理财学专业自荐书
2014/06/28 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
Python中time标准库的使用教程
2022/04/13 Python