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获取当前时间的方法
Jan 14 Python
解决python写的windows服务不能启动的问题
Apr 15 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
详解python进行mp3格式判断
Dec 23 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
基于Python爬虫采集天气网实时信息
Jun 05 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
Sep 28 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使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
jquery JSON的解析方式
2009/07/25 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
详解Python中的type和object
2018/08/15 Python
详解Python字典小结
2018/10/20 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
Django的models模型的具体使用
2019/07/15 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
幼师自荐信
2013/10/26 职场文书
办公室内勤岗位职责范本
2013/12/09 职场文书
保护环境建议书400字
2014/05/13 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
单位综合评价意见
2015/06/05 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python