2014-07-15 222 views
0

我想是這樣的:如何設置默認值多選擇

import click 

@click.command() 
@click.option("-r", "--range", nargs=2, type=int, default=(1,2), show_default=True) 
def scale(range): 
    print "scale to %d - %d" % range 

if __name__ == '__main__': 
    scale() 

但對於多值的選項的默認值不會在這裏工作。如何正確地做到這一點?

回答

1

這現在是implemented in master,並且在v3發佈時通常可用。它會像你寫的那樣工作,通過傳遞一個迭代到default=。分別支持nargs=multiple=True,分別支持together

@click.command() 
@click.option('--foo', default=[23, 42], type=click.FLOAT, multiple=True) 
def cli(foo): 
    for item in foo: 
     click.echo(item) 

@click.command() 
@click.option('--arg', default=((1, 2), (3, 4)), nargs=2, multiple=True, type=click.INT) 
def cli(arg): 
    for item in arg: 
     click.echo('<%d|%d>' % item)