从另一个文件中调用Python函数

2025年1月5日 | 阅读 4 分钟

Python 是一种高级解释型编程语言,易于理解。尽管 Python 简单,但它提供了强大的工具和实用程序,用于创建高度可扩展和复杂的应用程序。Python 支持模块化编程,即逻辑独立定义,然后导入到其他程序部分。

本教程将教您如何定义和调用不同文件中的函数,以开始使用 Python 模块化编程。

Python 模块:它是什么?

包含可导入到其他程序中的源代码的 Python 文件称为模块。因此,Python 模块是任何以 .py 结尾的 Python 代码文件。

创建 Python 函数

让我们开始定义函数,以了解如何在 Python 中从另一个文件导入和调用它。

调用函数时需要考虑的事项

  • 也可以从不同文件中导入多个函数。
  • 如果要导入不在同一文件夹中的文件中的函数,请使用从根目录开始的准确路径。
  • 因此,如果您的文件位于两个目录中,则必须使用以下命令导入您的 file.py。

可以从其他文件调用用户定义的函数。函数可以在其定义所在文件以外的文件中被调用和执行。

如果创建了一个名为 myfunctions.py 的新文件,则 Plustwo() 和 falldist() 是该文件中的函数定义,其他脚本可以使用它们。单独的脚本必须先导入文件和函数名,然后才能使用这些函数。包含函数定义的文件的末尾必须具有 .py 扩展名。如果包含已定义函数的文件的扩展名不是 .py,则无法导入该文件。

以下代码定义了包含在 myfuctions.py 文件中的两个函数。

您可以将此文件 myfunctions.py 导入到 Jupyter Notebook 或其他脚本中。

  • 请记住,调用函数的​​文件和包含函数定义的文件需要位于同一目录中。
  • 要在另一个文件中使用一个文件中编写的函数,请包含导入行 `from filename import function_name`。尽管文件名需要 .py 扩展名,但请注意,在导入时文件名中不包含 .py。

以下是导入和使用来自另一个 [python 文件](https://tpointtech.cn/python-files) 的函数的标准语法

以下示例是使用 plustwo() 函数和 myfunctions.py 文件利用此语法

通过使用逗号分隔导入的函数,可以从同一个文件导入多个函数。以下是从同一个文件导入和调用多个函数的标准语法

请参阅以下示例,其中使用了 myfunctions.py 文件中的 plustwo() 和 falldist() 函数

输出

44.145, 5

说明

在给定的代码片段中,我们定义了两个函数:plustwo(n) 将输入 n 加上 2 并返回结果,而 falldist(t,g=9.81) 在给定时间 t 和可选重力常数 g 的情况下计算下落的距离。之后,我们从名为 function_file 的文件中导入了一个名为 function_name 的函数,并使用指定的参数调用了它。接下来,它从名为 myfunctions() 的文件中导入了 plustwo() 函数,并使用参数 3 调用了它。然后,我们从 function_file 中导入了 function_name1 和 function_name2 两个函数,并使用指定的参数调用了它们。最后,我们从 myfunctions 中导入了 falldist() 和 plustwo(),使用参数 3 计算了每个函数的输出,并打印了输出。

在另一个 Python 文件或 Jupyter Notebook 中导入 myfunctions.py 中的函数的另一种方法是使用 `import myfunctions` 导入整个文件,然后使用下面提供的语法调用函数。

另一个示例

创建一个名为 my_functions.py 的文件,并添加另一个名为 my_function() 的函数。您可以在 VS Code 编辑器或 Jupyter Notebook 中创建文件并运行代码。

创建一个名为 main.py 的文件。要从 main 文件检索内容,请在 main.py 文件中调用 my_function()。

运行 main.py 文件以查看 my_functions 中的 my_function 的内容。

输出

Calling my_function:
This is my function

说明

在上面的示例中,我们创建了两个函数以及一个 main 函数。名为 `my_functions()` 的函数输出“This is my function”。接下来,我们从名为 `my_functions` 的模块中导入了一个名为 `my_function` 的函数。在这里,不要混淆名称,因为我们声明了 `my_functions()` 已定义,但 `my_function` 已导入。条件语句 `if _name_ == "_main_":` 似乎也有一个拼写错误,它应该是 `if __name__ == "__main__":` 才能在直接运行脚本时执行 `main()` 函数。

结论

Python 轻松地为我们提供了从另一个文件调用函数的机制,这是确保代码正确组织和模块化的基本方法。通过添加 import 语句并指定模块的函数名,您可以轻松地重用代码。有必要将文件保存在同一目录中或相应地调整导入路径。此方法可提高可读性、可维护性和代码重用性。