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装饰器decorator介绍
Nov 21 Python
详解在Python中处理异常的教程
May 24 Python
python 性能提升的几种方法
Jul 15 Python
Django与JS交互的示例代码
Aug 23 Python
浅谈python函数之作用域(python3.5)
Oct 27 Python
python实现拓扑排序的基本教程
Mar 11 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
Python如何安装第三方模块
May 28 Python
python获取百度热榜链接的实例方法
Aug 25 Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 Python
python调用百度AI接口实现人流量统计
Feb 03 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
中英文字符串翻转函数
2008/12/09 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
python使用KNN算法手写体识别
2018/02/01 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
python集合能干吗
2020/07/19 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
护士自我鉴定
2013/10/23 职场文书
促销活动方案模板
2014/02/24 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
测量员岗位职责
2015/02/14 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
城南旧事观后感
2015/06/11 职场文书
SQL Server中的游标介绍
2022/05/20 SQL Server