ITPub博客

首页 > 应用开发 > Python > Python种导入模块的三种方式总结

Python种导入模块的三种方式总结

原创 Python 作者:ckxllf 时间:2020-03-04 14:42:46 0 删除 编辑

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

  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 "", line 1, in

  import x

  ImportError: No module named 'x'

  这样也不行,这样做的意思是导入名为x的模块而非x代表的sys模块。

  我们需要用到exec函数:

  >>> x="sys"

  >>> exec("import "+ x)

  >>> sys.path 郑州哪个妇科医院好 http://www.sptdfk.com/

  ['', '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']

  这种方式需要一个变量保存模块对象,以便后续调用。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69945560/viewspace-2678469/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    204
  • 访问量
    262652