结构任务的名称是否不是有效的Python函数名称?

时间:2011-11-03 20:58:29

标签: python fabric

我希望我的Fabric任务有连字符( - )而不是下划线(_)。例如,database-reset而不是database_reset。但是,不允许使用连字符作为Python函数名称。

Fabric中是否可以创建名称与相应Python函数不完全匹配的任务?

2 个答案:

答案 0 :(得分:6)

来自the documentation

@task(alias = 'database-reset')
def database_reset():
    ...

答案 1 :(得分:3)

Cat Plus Plus拥有您想要做的最佳解决方案。但是,从技术上讲,技术上可以通过分配globals()字典来使Python全局变量(函数名称只是一个全局变量)不符合通常的规则。

def foo_bar():
    print "foo-bar"

globals()["foo-bar"] = foo_bar

globals()["foo-bar"]()   # prints "foo-bar"

虽然语法不是很好,但却非常麻烦。