专栏名称: Python开发者
人生苦短,我用 Python。伯乐在线旗下账号「Python开发者」分享 Python 相关的技术文章、工具资源、精选课程、热点资讯等。
目录
相关文章推荐
51好读  ›  专栏  ›  Python开发者

命令行神器 Click 简明笔记

Python开发者  · 公众号  · Python  · 2016-12-28 21:51

正文

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


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

def show ( rate ) :

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

if __name__ == '__main__' :

show ()


执行情况:


$ python click_type . py -- rate 1

rate : 1.0

$ python click_type . py -- rate 0.66

rate : 0.66


可选值


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


import click

@ click . command ()

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

def choose ( gender ) :

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

if __name__ == '__main__' :

choose ()


执行情况:


$ python click_choice . py -- gender boy

Usage : click_choice . py [ OPTIONS ]

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

$ python click_choice . py -- gender man

gender : man


多值参数


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


看看例子就明白了:


import click

@ click . command ()

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

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

def circle ( center , radius ) :

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

if __name__ == '__main__' :

circle ()


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


执行情况:


$ python click_multi_values . py -- center 3 4 -- radius 10

center : ( 3.0 , 4.0 ), radius :







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