我在Python中编写了一个简单的命令行工具。为了简化的逻辑,我使用dict
用于存储指令和处理程序,是这样的:Python:引用稍后将声明的函数的优雅方式
#!/usr/bin/env python
# some code here
DISPACHERS = {
"run": func_run
"list": func_list
}
# other code
的问题是,我必须把这段代码的函数声明之后,这是不标准的做法我在其他语言中看到过(即一个块中的常量,之后的变量,然后是函数)。
我可以使用字符串来存储函数,并使用类似getattr(__main__, "func_run")
的东西来检索它,所以我可以坚持我的偏好,但我不知道这是否是一个“正确”的方式。
有什么想法?
===更新===
因为它是一个简单的Python脚本来处理其他项目的一些自动化的任务,所以它会更好,如果能够保持在一个单一的文件(没有其他模块)。
你可以把它们放在不同的模块中,然后将它们导入到脚本的顶部?为什么它不能在目前的状态下处于顶峰呢? – Holloway
@霍洛威我不这么认为,因为它仍然错过了函数声明。相同的原因,我不能把它放在顶部,因为实际的处理函数是在它之后声明的,否则我会产生这样的错误:'NameError:name'func_run'未定义' – Lin
把它放在函数声明之后,不要造成问题。 – furas