Fabric 任务的名称是否可以是无效的 Python 函数名称?

发布于 2024-12-13 17:13:54 字数 153 浏览 1 评论 0原文

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

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

I'd like my Fabric tasks to have hyphens (-) instead of underscores (_). For example, database-reset instead of database_reset. However, hyphens aren't permitted as Python function names.

Is it possible in Fabric to create tasks whose names do not exactly match the corresponding Python function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠檬色的秋千 2024-12-20 17:13:54

来自文档

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

From the documentation:

@task(alias = 'database-reset')
def database_reset():
    ...
苏大泽ㄣ 2024-12-20 17:13:54

Cat Plus Plus 可为您提供最佳解决方案。然而,从技术上讲,通过分配给 globals() 字典,Python 全局变量(函数名只是一个全局变量)可能不符合通常的规则。

def foo_bar():
    print "foo-bar"

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

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

不过,语法不是很好,这使得它相当麻烦。

Cat Plus Plus has the best solution to what you want to do. Tangentially, however, it is technically possible to have Python global variables (a function name is just a global variable) that don't conform to the usual rules by assigning to the globals() dictionary.

def foo_bar():
    print "foo-bar"

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

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

The syntax is not very nice, though, making it quite the hassle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文