Python中正确的函数命名和导入
我开发了一个项目,其包/模块/功能结构与此类似:Python中正确的函数命名和导入,python,python-import,Python,Python Import,我开发了一个项目,其包/模块/功能结构与此类似: project/ │--mainfunc.py | └───functions/ │--__init__.py |--func_caller.py │ ├───subfolder1/ │ │--__init__.py │ │--func11.py │ │--func12.py │ └───subfolder2/ │--__init__.py
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
正确的方法是什么?试试以下方法:
from subfolder2.func22 import name_of_func
是否有理由将所有功能拆分为单独的模块?我会把你的功能组合成相关的模块。例如,将所有与数据库管理相关的函数放在一个模块中,等等。这样,您就可以从子文件夹1调用。func import do_func11、do_func12、do_func21
。每个模块(即:funcXX
)都已包含多个按相关性分组的函数。通常,我只需要在每个模块中调用一个函数(即:do_funcXX
),该函数调用所有其他函数。这是可行的,但它只是将作为xxxx
部分删除。我想做一些简单/简短的事情,比如:import subfolder2.func22 as f22
。从subfolder2.func22 import name_of_func as f22如果你看这个问题,你会发现这正是我现在的做法,我建议将所有函数放在一个模块中,然后导入包含所需函数的模块。