从另一个文件夹导入函数

Importing a function from another folder

假设我有这样的结构:

tests----------------
                     ___init__.py
                     test_functions_a

functions-----------
                    ___init__.py
                    functions_a
                    functions_b

我想测试来自 functions_a 的函数,但在 functions_a 中我正在导入来自 functions_b 的函数。

当我尝试时:

from functions.functions_a import function_aa

我收到一个错误,因为在 functions_a 里面有一行:

from functions_b import function_bb

而不是:

from functions.functions_b import function_bb

我该如何解决这个问题?

欢迎任何好的做法,因为我没有构建项目的经验。

您不能直接导入该函数,而是可以将文件 1 导入到其他文件,然后从您导入的特定文件中调用该函数。

根据 Google Python Style Guide,你应该:

Use import statements for packages and modules only, not for individual classes or functions. Note that there is an explicit exemption for imports from the typing module.

您还应该:

Import each module using the full pathname location of the module.

如果您遵循这两个约定,您将来可能会避免像您刚才描述的那样的情况。


现在,如果您遵循这些提示,您的代码可能如下所示:

模块 functions.functions_a:

from functions import functions_b as funcs_b

def function_aa():
    print("AA")

def function_aa_bb():
    function_aa()
    funcs_b.function_bb()

模块 functions.functions_b:

def function_bb():
    print("BB")

最后,test_functions_a.py

from functions import functions_a as funcs_a

if __name__ == "__main__":
    funcs_a.function_aa()
    funcs_a.function_aa_bb()

输出:

AA
AA
BB