2
私は次のように記述することができますPythonのClickを使ってargsのリストを取得する方法はもっと慣れていますか?
import click
@click.command()
@click.option('--things', callback=lambda _,__,x: x.split(',') if x else [])
def fun(things):
print('You gave me these things: {}'.format(things))
if __name__ == '__main__':
fun()
これは動作するように見える、私はfun.py
として保存し、少なくとも場合、私は実行することができます:
$ python fun.py
You gave me these things: []
$ python fun.py --things penguins,knights,"something different"
You gave me these things: ['penguin', 'knights', 'something different']
が使用してこのコードを書くためのより多くの慣用的な方法はありますクリックするか、それともそれほどですか?
(私はクリックユーザーではないので、私は大粒の塩で言う) - ドキュメントによれば、[「固定数の引数だけがサポートされています」] (http://click.pocoo.org/5/options/#multi-value-options)。だから私はこの戦略がかなり最適だと思う。明らかに、これをたくさん使うつもりなら、適切に指名されたヘルパーは 'ラムダ'よりも良いでしょう。また、 'multiple = True'を' 'python fun.py --thing penguin -thing knights ... ''をサポートするために使うこともできますが、それはコマンドライン構造を変更します。 – mgilson
私はそのアプローチを取って、何とかリストを分割/連結することを考えました。それが私のためにうまくいくかどうかは分かりません。 –
http://click.pocoo.org/5/options/#multi-value-options? –