Python中几种导入模块的方式总结

模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入。常见的方式有如下几种:

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 2与Python 3版本和编码的对比 11月以前  |  1661次阅读
python中执行shell的两种方法总结 11月以前  |  1501次阅读
将字符串与数据一起组成一个字符串 11月以前  |  1356次阅读
Python设置默认编码为utf8的方法 11月以前  |  1330次阅读
Python文件格式 11月以前  |  1298次阅读
Python编码类型转换方法详解 11月以前  |  1187次阅读
Python中为什么要用self探讨 11月以前  |  1026次阅读
将字符串写入到文件中 11月以前  |  989次阅读
Python字符串格式化输出方法分析 11月以前  |  966次阅读
Python中几种导入模块的方式总结 11月以前  |  582次阅读
Python八进制字符吕转utf-8编码的中文 10月以前  |  133次阅读