5

我有这段代码:

import click

@click.option('--delete_thing', help="Delete some things columns.", default=False)
def cmd_do_this(delete_thing=False):
    print "I deleted the thing."

我想将选项变量重命名为--delete-thing. 但是 python 不允许在变量名中使用破折号。有没有办法编写这种代码?

import click

@click.option('--delete-thing', help="Delete some things columns.", default=False, store_variable=delete_thing)
    def cmd_do_this(delete_thing=False):
        print "I deleted the thing."

所以delete_thing将被设置为delete-thing

4

2 回答 2

2

默认情况下,click 会智能地将选项内命令行连字符映射到下划线,因此您的代码应该按原样工作。这在 click 文档中使用,例如,在Choice 示例中。如果 --delete-thing 旨在成为布尔选项,您可能还希望将其设为布尔参数

于 2016-10-19T15:27:30.967 回答
0

正如gbe的回答所说,click将自动将-cli参数转换_为python函数参数。

但是您也可以将 python 变量显式命名为您想要的任何名称。在此示例中,它转换--delete-thingnew_var_name

import click

@click.command()
@click.option('--delete-thing', 'new_var_name')

def cmd_do_this(new_var_name):
    print(f"I deleted the thing: {new_var_name}")
于 2022-01-25T21:29:48.967 回答