专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
京东科技技术说  ·  大促数据库压力激增,如何一眼定位 SQL ... ·  18 小时前  
伯乐在线  ·  美国 IT 业裁员狂飙 ... ·  昨天  
伯乐在线  ·  美国 IT 业裁员狂飙 ... ·  昨天  
老刘说NLP  ·  RAG&KG&LLM&文档智能四大领域技术前 ... ·  昨天  
程序猿  ·  还有人手动画图?一键生成 Draw.io ... ·  2 天前  
程序员的那些事  ·  阿里云核心域名竟遭劫持,博客园等众多网站瘫痪 ... ·  2 天前  
51好读  ›  专栏  ›  程序员大咖

命令行开发神器 Click 简明指南

程序员大咖  · 公众号  · 程序员  · 2018-04-08 10:24

正文

请到「今天看啥」查看全文


  • nargs: 指定命令行参数接收的值的个数

  • 下面,我们再看看相关的例子。

    指定 type

    我们可以使用 type 来指定参数类型:

    1. import click

    2. @click.command()

    3. @click.option('--rate', type=float, help='rate')   # 指定 rate 是 float 类型

    4. def show(rate):

    5.    click.echo('rate: %s' % rate)

    6. if __name__ == '__main__':

    7.    show()

    执行情况:

    1. $ python click_type.py --rate 1

    2. rate: 1.0

    3. $ python click_type.py --rate 0.66

    4. rate: 0.66

    可选值

    在某些情况下,一个参数的值只能是某些可选的值,如果用户输入了其他值,我们应该提示用户输入正确的值。在这种情况下,我们可以通过 click.Choice() 来限定:

    1. import click

    2. @click.command()

    3. @click.option('--gender', type=click.Choice(['man', 'woman']))    # 限定值

    4. def choose(gender):

    5.    click.echo('gender: %s' % gender)

    6. if __name__ == '__main__':

    7.    choose()

    执行情况:

    1. $ python click_choice.py --gender boy

    2. Usage: click_choice.py [OPTIONS]

    3. Error: Invalid value for "--gender": invalid choice: boy. (choose from man, woman)

    4. $ python click_choice.py --gender man

    5. gender: man

    多值参数

    有时,一个参数需要接收多个值。option 支持设置固定长度的参数值,通过 nargs 指定。

    看看例子就明白了:

    1. import click

    2. @click.command()

    3. @click.option('--center', nargs=2, type=float, help='center of the circle')

    4. @click.option('--radius', type=float, help='radius of the circle')

    5. def circle(center, radius):

    6.    click.echo('center: %s, radius: %s' % (center, radius))

    7. if __name__ == '__main__':

    8.    circle()

    在上面的例子中,option 指定了两个参数:center 和 radius,其中,center 表示二维平面上一个圆的圆心坐标,接收两个值,以元组的形式将值传递给函数,而 radius 表示圆的半径。

    执行情况:

    1. $ python click_multi_values.py --center 3







    请到「今天看啥」查看全文