我在Python中编写了一个简单的命令行工具。为了简化逻辑,我使用dict
来存储命令和处理程序,如下所示:
#!/usr/bin/env python
# some code here
DISPACHERS = {
"run": func_run
"list": func_list
}
# other code
问题是,我必须在函数声明之后放置这段代码,这不是我在其他语言中看到的标准做法(即一个块中的常量,变量之后,然后是函数)。
我可以使用字符串来存储函数,并使用像getattr(__main__, "func_run")
这样的东西来检索它,所以我可以坚持我的偏好,但我想知道这是不是正确的"方式。
有什么想法吗?
===更新===
因为它是一个处理另一个项目的一些自动化任务的简单python脚本,所以如果可能的话,最好将它保存在一个文件中(没有其他模块)。
答案 0 :(得分:2)
使用装饰器枚举函数。
dispatchmap = {}
def dispatcher(name):
def add_dispatcher(func):
dispatchmap[name] = func
return func
return add_dispatcher
...
@dispatcher('run')
def func_run(...):
...