美文网首页
18-python中动态导入模块

18-python中动态导入模块

作者: mingminy | 来源:发表于2017-12-22 09:24 被阅读0次

如果导入的模块不存在,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语句。

相关文章

  • 18-python中动态导入模块

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

  • python基础十——继承、多态、封装

    反射 动态导入模块

  • python学习之-- 动态导入模块

    动态导入模块方法1: import 说明:1. 函数功能用于动态的导入模块,主要用于反射或者延迟加载模块。2. i...

  • 为什么Python的__import__需要fromlist?

    在Python中,如果要以动态方式导入模块,可以执行以下操作: 如果要导入子模块,你可能认为这只是一个简单的问题:...

  • 模块

    解决变量重名:模块 模块的名字就是py文件的文件名 解决模块重名:包 动态导入模块 如果导入的模块不存在,Pyth...

  • importlib动态导入模块

      一般而言,当我们需要某些功能的模块时(无论是内置模块或自定义功能的模块),可以通过import module ...

  • 047-python中动态导入模块

    如果导入的模块不存在,Python解释器会报 ImportError 错误: 有的时候,两个不同的模块提供了相同的...

  • 2019-03-28/ES6新增特性-2

    一、import 导入整个模块的内容 导入单个或多个 动态import 二、export 命名导出 如果我们要导出...

  • 9Python 函数和模块

    1、导入整个模块导入模块,首先要又模块,模块是扩展名为.py的文件,包含要导入程序中的代码,常见格式 2、导入特定...

  • Python-模块

    模块 模块的搜索路径 模块导入的执行流程 循环导入 包 包中模块的使用:import 包的嵌套 包中模块的使用:f...

网友评论

      本文标题:18-python中动态导入模块

      本文链接:https://www.haomeiwen.com/subject/tfhtgxtx.html