如何在Python中导入模块?

283 阅读3分钟

如果你正在从事小型或大型项目,你总是需要与其他模块和软件包一起工作。有些文件是你创建的,有些则是第三方的。要在你的代码中使用任何模块,你必须让它在你的文件中被访问,这就是为什么首先你必须导入它。

在 Python 中,在它被定义之前,你不能使用任何东西。

有些东西是内置的;例如,基本的数据类型(像 float, int, boolean, 等等) 可以在需要时使用。但是你要做的大多数事情都需要比这多一点。所以你必须首先导入它,然后你可以使用它的方法和函数。

什么是 Python 中的模块

一个模块是一个包含定义和语句的文件。为了使用 Python 模块,我们必须在其他文件或你要执行的文件中导入该模块。

Python导入文件

要在Python导入一个文件,使用import 语句。 import 语句结合了两个操作;它搜索命名的模块,然后将搜索的结果与本地范围内的名字绑定。

例如,如果你想创建一个随机数,你需要使用 "import random"导入随机包;如果你要访问文件系统,你将使用OS包。

Python 语言可以把定义放在一个文件中,并在脚本或解释器的交互式实例中使用它们。这样的文件被称为模块;模块中的定义可以被导入其他模块或主模块 (在顶层和计算器模式下执行的脚本中你可以访问的变量集合)。

文件名是带有后缀 .py的模块名。模块的名称(作为一个字符串)可以作为全局变量__name__的值。

例如,创建一个名为sum.py 的新文件,并在该文件内添加以下代码。

# sum.py

def add(a, b):
  c = a + b
  return c

sum.py文件有一个名为 add() 的函数,它接收两个参数并返回所提供参数的总和。

sum.py文件是上述文件中的一个模块,add()是其方法。

现在,我们可以使用其他文件中的 "import sum"来导入sum模块。但是,首先,让我们在app.py文件中导入,该文件与sum.py 文件在同一目录下。

# app.py

import sum

所以,导入的语法如下。

Python导入语法

import modulename

在我们的例子中,modulename = sum

现在,我们可以使用 sum 模块的 add() 函数。

# app.py

import sum

print(sum.add(3, 4))

输出

7

如果你打算在你的文件中多次使用 add() 函数,你可以把它指定为一个本地名称。

# app.py

import sum

summation = sum.add
print(summation(3, 4))

输出

7

在上面的代码中,我们将sum()函数分配给了summation的本地名称,然后在文件中的任何地方使用它。

关于导入模块的更多信息

Python 模块可以包含可执行语句以及函数定义。这些语句是用来初始化模块的。模块 只在导入语句中第一次遇到模块名称时才会执行。

Python 模块可以导入其它模块。将所有的导入语句放在文件或模块 (或脚本) 的开头是一个好的做法,但不是必须的。相反,导入的模块名被放在导入模块的全局符号表中,Python 会精确地跟踪。

导入语句的一些变体直接将模块的名字导入导入模块的符号表。

例如,请看下面的代码。

# app.py

from sum import add

print(add(3, 4))

输出

7

你会得到相同的输出。

这并没有在本地符号表中引入导入的模块名称(所以总和没有被定义)。

甚至还有一种变体,即导入一个模块定义的所有名称。

请看下面的代码。

# app.py

from sum import *

print(add(3, 4))

输出

7

除了以下划线(_)开头的名字外,这将导入所有名字。

所以,这些是在 Python 中导入文件的方法。本教程就到此为止。