如docopt一样,使用docopt_dispatch可以在你的模块入口点中的__doc__变量中定义你的帮助信息。在那里,你调用dispatch,并使用文档字符串作为它的参数,这样它就可以在其中运行解析器了。 这样做,就不需要手动处理参数(这些往往都是在多层嵌套的if/else语句结构),而是仅仅处理你想要处理的参数,其他的参数让dispatch处理。 这就是dispatch.on装饰所要做的事情。你分配给它一个参数,或者一系列参数,这将会触发函数调用,这个函数将会以匹配值作为参数来执行。 """Run something in development or production mode. Usage: run.py --development <host> <port> run.py --production <host> <port> run.py items add <item> run.py items delete <item> """ from docopt_dispatch import dispatch @dispatch.on('--development') def development(host, port, **kwargs): print('in *development* mode') @dispatch.on('--production') def development(host, port, **kwargs): print('in *production* mode') @dispatch.on('items', 'add') def items_add(item, **kwargs): print('adding item...') @dispatch.on('items', 'delete') def items_delete(item, **kwargs): print('deleting item...') if __name__ == '__main__': dispatch(__doc__) |
|
来自: 启辰ozkb3yjim4 > 《待分类》