Python:Click:如何基于第一个输入显示/隐藏输入选项?

问题描述 投票:1回答:1

我正在使用Python Click软件包编写命令行工具。

对于用户输入,我想基于第一个输入显示/隐藏下一个输入选项。

这里是示例代码:

import click


@click.command()
@click.option('--user/--no-user', prompt='do you want to add user?')
@click.option('--new-user', prompt='add user')
def add_user(user, new_user):
    print(user)
    print(new_user)


add_user()

仅当用户为第一个输入('--new-user')输入是时,我才想显示第二个提示('--user/--no-user'

任何帮助我该怎么做?预先感谢。

python python-3.x command-line-interface python-click
1个回答
1
投票

您将必须使用自定义回调:

import click

def prompt_user(ctx, param, user):
    new_user = None
    if user:
        new_user = click.prompt('username')
    return (user, new_user)


@click.command()
@click.option('--user/--no-user', prompt='do you want to add user?', callback=prompt_user)
def add_user(user):
    user, new_user = user
    print(user)
    print(new_user)

if __name__ == '__main__':
    add_user()

$ python3.8 user.py
do you want to add user? [y/N]: y
username: no
True
no
$ python3.8 user.py
do you want to add user? [y/N]: N
False
None

© www.soinside.com 2019 - 2024. All rights reserved.