从另一个文件夹导入函数
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
假设我有这样的结构:
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