4

以下のようなコードがあります。foo と bar の両方にユーザーオプションがあり、次のように記述する必要があります。

@click.option('--user', default='*')

関数ごとに 2 回。

しかし、実際にはこのようなコマンドがたくさんあるので、コードの繰り返しがたくさんあります。

@click.group(help="cmd group")
def main():
    pass


@click.command(name='foo')
@click.option('--user', default='*')
def foo(user):
    click.secho(user, fg='green')


@click.command(name='bar')
@click.option('--user', default='*')
def bar(user):
    click.secho(user, fg='green')


main.add_command(foo)
main.add_command(bar)

私が望むのは、cmd のグループ内の 1 つの場所に同じオプションを追加することです。クリックを使用してこれを行うことができますか?

4

2 に答える 2

0

方法 1. @click.option() の最初のパラメーターの名前はpara.

USER_DEFAULT = {'para' : '--user', 'default' : '*'}

@click.option(**USER_DEFAULT)

方法 2. デフォルトのパラメーターで満たされた独自のデコレーターでラップします。

于 2015-02-11T08:24:59.470 に答える