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 过滤字符串的技巧,map与itertools.imap
Sep 06 Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
python3操作mysql数据库的方法
Jun 23 Python
python的文件操作方法汇总
Nov 10 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
python判断文件夹内是否存在指定后缀文件的实例
Jun 10 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
python中remove函数的踩坑记录
Jan 04 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
基于PyTorch实现一个简单的CNN图像分类器
May 29 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 XML备份Mysql数据库
2009/05/27 PHP
PHP开发负载均衡指南
2010/07/17 PHP
php的memcached客户端memcached
2011/06/14 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
javascript 写类方式之二
2009/07/05 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
OpenCV Python实现拼图小游戏
2020/03/23 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
淘宝客服自我总结鉴定
2014/01/25 职场文书
少先队入队活动方案
2014/02/08 职场文书
幼儿园中班教学反思
2014/02/10 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
二年级语文上册复习计划
2015/01/19 职场文书