Python中函数的正确命名与导入

2024-06-28 19:13:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我开发了一个项目,其包/模块/功能结构与此类似:

project/
│--mainfunc.py
|
└───functions/
    │--__init__.py
    |--func_caller.py
    │
    ├───subfolder1/
    │   │--__init__.py
    │   │--func11.py
    │   │--func12.py
    │
    └───subfolder2/
        │--__init__.py
        |--func21.py
        |--func22.py

每个funcXX.py模块内部都包含一个Python函数,例如:

# /project/functions/subfolder1/func11.py

def do_func11(args):
    # Do something
    return some_value

func_caller.py文件一次调用每个funcXX.py模块中定义的函数。func_caller.py(所有导入都在这里)的顶部部分如下所示:

from subfolder1.func11 import do_func11 as df11
from subfolder1.func11 import do_func12 as df12
from subfolder2.func21 import do_func21 as df21
from subfolder2.func22 import do_func22 as df22

这似乎是一种不必要的复杂方式。我想把每个funcXX.py模块内的函数命名为main(),以便能够用以下方法导入它们:

import subfolder2.func22 as df22

但这会导致:

TypeError: 'module' object is not callable

正确的方法是什么?你知道吗


Tags: 模块frompyimportinitasdofunc