Python 从其他文件夹导入函数
假设我有一个这样的结构:Python 从其他文件夹导入函数,python,python-import,Python,Python Import,假设我有一个这样的结构: tests---------------- ___init__.py test_functions_a functions----------- ___init__.py functions_a functions_b 我想测试functions\u a中的函数,但
tests----------------
___init__.py
test_functions_a
functions-----------
___init__.py
functions_a
functions_b
我想测试functions\u a
中的函数,但在functions\u a
中,我正在导入functions\u b
中的函数
当我尝试时:
from functions.functions_a import function_aa
我收到一个错误,因为在函数中有一行:
from functions_b import function_bb
而不是:
from functions.functions_b import function_bb
我怎样才能解决这个问题
欢迎任何好的实践,因为我没有结构化项目的经验。您不能直接导入函数,而是可以将文件1导入其他文件,然后从导入的特定文件调用函数。根据,您应该:
导入语句仅用于包和模块,不用于
单个类或函数。注意,有一个显式的
从打字模块导入的豁免
你亦应:
使用模块的完整路径名位置导入每个模块
如果你遵循这两个惯例,你将来可能会避免你刚才描述的那种情况
现在,如果您遵循以下提示,您的代码可能会是什么样子:
模块功能。功能\u a
:
from functions import functions_b as funcs_b
def function_aa():
print("AA")
def function_aa_bb():
function_aa()
funcs_b.function_bb()
模块功能。功能
def function_bb():
print("BB")
最后,测试函数\u 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
我想我不明白你的答案,当我导入整个文件时,问题仍然存在。你的意思是导入函数。函数a而不是从函数。函数a导入函数?是的,没错,但它会产生相同的错误:没有名为“函数”的模块