Python 中可以通过 import
关键字导入模块和模块中的函数。导入模块可以借助于模块的命名空间,防止命名冲突。导入函数可以减少代码重复,增强代码可读性。
导入模块:
在 python 中,导入模块可以通过以下方式:
1. import
import 模块名
当我们执行import 模块名
时,Python 解释器会执行以下操作:
- 构建一个名为
模块名
的命名空间。 - 加载并执行名为
模块名
的 py 文件(如果在导入的时候发现该模块还没有被导入过)。 - 在该命名空间下定义该模块中的一切(例如函数、变量)。
- 将该命名空间加入到当前程序中。
导入模块后可以通过 模块名.变量名
或 模块名.函数名()
的方式使用该模块和它里面的函数或变量。
例如,导入 os
模块并使用其 getcwd()
函数:
import os
print(os.getcwd())
上面代码输出当前工作目录的路径。
2. from…import
from 模块名 import 函数名
当我们执行 from 模块名 import 函数名
时,Python 解释器会执行以下操作:
- 构建一个名为
__main__
的命名空间。 - 加载并执行名为
模块名
的 py 文件(如果在导入的时候发现该模块还没有被导入过)。 - 将在模块中定义的
函数名
加入到当前命名空间下。
导入函数后,可以直接使用该函数,无需使用模块名前缀。
例如,导入 os
模块并使用其 getcwd()
函数:
from os import getcwd
print(getcwd())
上面代码和前面的效果是一样的。
导入模块中的函数:
在导入了模块后,我们可以使用其命名空间中的函数。如果我们只想使用其中某一个或几个函数,可以使用 from...import
的方式导入。
示例一:
如果我们只想要使用 os
模块中的 getcwd()
函数,可以这样导入:
from os import getcwd
print(getcwd())
示例二:
如果我们想导入多个函数,可以用逗号分隔:
from os import getcwd, system
print(getcwd())
system('ls')
上面代码同时导入了 getcwd()
和 system()
函数,并在输出当前工作目录的路径后执行了 ls
命令。
终究,导入函数是一种方便快捷的方式,但是在命名空间占用和命名冲突方面要额外留意,更好的用法是导入整个模块。