Python - 从同级目录导入模块

简介

在本文中,我们将探讨如何在 Python 中从同级目录(Sibling Directory)导入文件。我们将首先在根文件夹下创建两个文件夹,并在每个文件夹中各创建一个 Python 文件。目录结构如下所示:

目录结构

Directory Tree:
root :
|   |__SiblingA:
|       \__A.py
|   |__SiblingB:
|       \__B.py

在这个结构中,我们将在 INLINECODE629b5e3f 里创建一个简单的函数,然后在 INLINECODEce60974f 中导入这个同级模块并调用 B.py 中创建的函数。

为了在 INLINECODE158ca59d 中导入同级模块,我们需要指定父目录的路径。这可以通过使用 INLINECODEb8ebfbe4 模块中的 INLINECODEd0723d28 方法来实现。在 INLINECODEadf74960 方法中传入 INLINECODEda88fd24,将会把 INLINECODEd8d8c578 的父目录路径添加到系统路径中。

A.py 代码:

# 导入所需模块
import sys

# 将父目录的路径添加到系统路径中
sys.path.append("..")

# 从同级模块导入方法
from SiblingB.B import methodB

# 调用方法
s = methodB()
print(s)

B.py 代码:

# 定义方法以供 A.py 导入,
# 该方法返回一个字符串
def methodB():
    return "

This is methodB from SiblingB"

执行结果

运行 A.py 后的输出如下:

INLINECODE9b104d4b 被执行,且 INLINECODE4498427a 被成功调用。

注意: 我们不能像 INLINECODEf7a1e4c7 这样直接在 INLINECODEe9574598 中导入 INLINECODEaed4f5ba,这样做会引发错误:INLINECODE1fecf5ec。这是因为如果文件夹中没有定义 __init__.py,Python 就不会将当前工作目录视为一个包。

方法二:使用 init.py 创建包

另一种执行相同任务的类似方法是,通过在文件夹中放入 INLINECODE53a625bf 文件将同级目录变成一个包(Package),然后从同级目录导入它。INLINECODE57047b6f 可以用来将所需的方法暴露给其他模块。

目录树如下所示:

目录结构

Directory Tree:
root :
|   |__SiblingA:
|       \__A.py
|   |__SiblingB:
|       \__ __init__.py
|       \__B.py
|

A.py 代码:

# 导入所需模块
import sys

# 将父目录的路径添加到系统路径中
sys.path.append("..")

# 从同级模块导入方法
# 注意:因为 __init__.py,我们可以直接从包导入
from SiblingB import methodB

# 调用方法
s = methodB()
print(s)

init.py 代码:

# 从 .fileName import methodName
from .B import methodB

B.py 代码:

# 定义方法以供 A.py 导入,
# 该方法返回此字符串
def methodB():
    return "

This is methodB from SiblingB"

执行结果

运行 A.py 后的输出如下:

注意: 一旦 __init__.py 被放置在文件夹中,该文件夹在 Python 中现在就充当了一个包。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/42709.html
点赞
0.00 平均评分 (0% 分数) - 0