18-python中动态导入模块

如果导入的模块不存在,Python解释器会报ImportError错误:

>>> import something

Traceback (most recent call last):

File "", line 1, in

ImportError: No module named something

有的时候,两个不同的模块提供了相同的功能,比如StringIOcStringIO都提供了StringIO这个功能。

这是因为Python是动态语言,解释执行,因此Python代码运行速度慢。

如果要提高Python代码的运行速度,最简单的方法是把某些关键函数用C语言重写,这样就能大大提高执行速度。

同样的功能,StringIO是纯Python代码编写的,而cStringIO部分函数是C写的,因此 cStringIO 运行速度更快。

利用ImportError错误,我们经常在Python中动态导入模块:

try:

from cStringIO import StringIO

except ImportError:

from StringIO import StringIO

上述代码先尝试从cStringIO导入,如果失败了(比如cStringIO没有被安装),再尝试从StringIO导入。这样,如果cStringIO模块存在,则我们将获得更快的运行速度,如果cStringIO不存在,则顶多代码运行速度会变慢,但不会影响代码的正常执行。

try的作用是捕获错误,并在捕获到指定错误时执行except语句。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python进阶框架 希望大家喜欢,点赞哦首先感谢廖雪峰老师对于该课程的讲解 一、函数式编程 1.1 函数式编程简...
    Gaolex阅读 5,539评论 6 53
  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 1,601评论 0 6
  • 前言 Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打...
    依依玖玥阅读 3,613评论 6 37
  • 有的人善于思考、有的人善于行动。只思考、不实践只停留在理论层次,是虚干;只实践不思考,缺乏理论支撑,是蛮干,做事情...
    自如得己阅读 202评论 0 0
  • 预付卡恶性违约事件为何频发 商务部发布的《单用途商业预付卡管理办法(试行)》对商业预付卡发行的主体资格、发卡条件作...
    小好阅读 1,240评论 0 1