📌  相关文章
📜  如何从另一个 python 文件中导入函数 - Python (1)

📅  最后修改于: 2023-12-03 14:51:47.464000             🧑  作者: Mango

如何从另一个 Python 文件中导入函数 - Python

在 Python 中,我们经常需要在不同文件之间共享代码或功能。为了避免重复代码,我们可以将共享的函数或类定义在一个文件中,并在另一个文件中导入它们。

本文将介绍 Python 中如何导入另一个文件中的函数。

基本语法

Python 中使用 import 语句导入模块、函数或变量。要导入另一个文件中的函数,我们只需要指定模块和函数名即可。

import module_name

module_name.function_name()

如果要导入多个函数:

from module_name import function_name1, function_name2

function_name1()
function_name2()

如果要导入所有函数:

from module_name import *

但是这样不推荐,因为这可能会导致名称冲突等问题。

导入同级目录下的文件

假设我们有两个 Python 文件在同一个目录下:a.pyb.py。现在我们想从 a.py 中导入 b.py 中的函数。

+-- my_project
|   +-- a.py
|   +-- b.py

b.py 文件中定义了一个 hello() 函数:

# b.py
def hello():
    print("Hello, world!")

在 a.py 文件中,我们可以使用以下代码导入 b.py 中的 hello() 函数如下:

# a.py
from b import hello

hello()

输出结果:

Hello, world!

这里我们使用了 from 关键字来从 b.py 文件中导入 hello() 函数。我们可以使用以下语法来导入多个函数:

from b import hello, foo, bar
导入子目录下的文件

如果我们要从一个子目录中导入函数,我们需要指定子目录名称以及文件名。假设我们有以下的目录结构:

+-- my_project
|   +-- main.py
|   +-- utils
|       +-- helper.py

helper.py 文件中定义了一个 print_hello() 函数:

# helper.py
def print_hello():
    print("Hello from helper!")

现在我们要从 main.py 文件中导入 helper.py 文件中的 print_hello() 函数。

我们可以使用以下语法导入:

from utils.helper import print_hello

print_hello()

输出结果:

Hello from helper!

from 关键字后面指定了子目录名 utils.helper 和文件名 print_hello。如果要导入多个函数:

from utils.helper import print_hello, add, subtract
模块和包

在 Python 中,一个文件就是一个模块。如果将多个模块放在一个文件夹中,这个文件夹就被称为包。

当我们导入一个包时,实际上是导入这个包下的 __init__.py 文件。这个文件可以为空,也可以定义一些初始化代码。

如果我们要从一个包中导入一个模块,我们必须指定包名和模块名。假设我们有以下目录结构:

+-- my_project
|   +-- main.py
|   +-- utils
|       +-- __init__.py
|       +-- helper.py

helper.py 文件中定义了一个 print_hello() 函数。

我们可以使用以下语法导入:

import utils.helper

utils.helper.print_hello()

或者我们可以使用以下语法导入:

from utils import helper

helper.print_hello()

或者我们可以使用以下语法导入:

from utils.helper import print_hello

print_hello()
结论

Python 中,我们可以使用 importfrom 语句导入另一个文件中的函数。我们需要指定模块、函数或变量的名称,并遵循 Python 的命名规范。在从子目录或包中导入模块时,需要指定正确的路径和名称。