首页 > 编程 > Python > 正文

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

2020-02-23 04:37:56
字体:
来源:转载
供稿:网友

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

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 xTraceback (most recent call last): File "<pyshell#4>", line 1, in <module>  import xImportError: 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中几种导入模块的方式总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表