如果你的背景来自于 JavaScript 世界,你经常会很快地在另一个模块里面使用一个 javascript 模块,但是如果你在 Python 上尝试这种方法,它就不会起作用。
你不能只是导出你的类文件,然后随时导入这个文件,因为 问题是Python在Python目录中寻找这个文件而没有找到它 。
你必须指定你说的是哪个目录,你在哪个目录中,而不是 Python 的目录。让我们看看如何解决在 Python 中导入类的错误。
Python 从另一个文件导入类
要在Python 中从 另一个 文件 导入一个类,可以使用sys.path.append()方法。 sys.path.append()是一个内置的方法,与 path 变量一起使用,用于添加一个特定的路径供解释器搜索。它接受path 作为一个参数。
要从不同的文件夹导入文件,在运行时添加 Python 路径。要添加Python路径,使用sys.path.append() 方法,它包括诸如包的位置。你需要在运行时添加Python路径,使用 sys.path.append() 方法将随后解决导入文件的路径问题。
在Python中把文件从一个文件夹导入到另一个文件夹是一项棘手的任务,默认情况下,你不能这样做,如果你尝试,你会得到一个错误。原因是,Python 只搜索入口点脚本运行的目录。
sys是一个内置的Python模块,包含了系统特定的参数。
在 Python 中导入一个类的例子
在我们当前的工作项目目录中,有一个叫做libs 的文件夹**,** 在这个文件夹中,有一个叫做add.py的 Python 文件。
我们想在我们的app.py 文件中使用这个add.py 文件。
在add.py 文件中写下以下代码。
def sum(x, y):
return x + y
顾名思义,它将返回两个数字的相加。
现在,打开我们的主程序文件app.py ,添加以下代码。
import sys
sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs")
在这里,我们使用sys.path.append()方法在运行时追加Python路径,并传递我们放置类文件add.py的目标路径。
现在,我们可以导入add.py 文件,因为现在 Python 解释器将知道在哪里寻找一个类文件。
import sys
sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs")
from add import sum
我们直接从add 模块中导入 sum() 函数。
import sys
sys.path.append("/Users/krunal/Desktop/code/pyt/database/libs")
from add import sum
print(sum(5, 6))
输出
11
这就是了。我们成功地导入了一个文件到我们的程序中,并完美地使用了它。
当你想从一个 "兄弟姐妹"目录中导入时,这种方法很好用,所以一个向上,一个向下。
在 Python 中从一个包中导入类
要从一个包中导入一个类,请使用下面的代码。
from application.app.folder.file import function_name
请确保包的文件夹包含一个 __init__.py,这允许它作为一个包被包含。但是当需要修改Python路径时,你需要使用上述方法,而不是使用它。
如果你把你的文件像包一样结构化,这种方法将是有效的。否则,第一种方法将是非常有帮助的。根据你的要求来使用。
所以,这就是你需要从一个目录导入一个文件到另一个目录,或者从另一个类导入一个类的方法。
本教程就到此为止。