Dae*_*yth 2 python method-signature perl6 command-line-arguments magic-methods
python是否有任何方法可以轻松快速地创建CLI实用程序,而无需大量的参数解析样板?
在Perl 6中,MAIN子的签名自动解析命令行参数.
有没有办法在没有大量样板的情况下在Python中做类似的事情?如果没有,最好的方法是什么?我正在考虑一个函数装饰器,它将执行一些内省并做正确的事情.如果没有什么比这更好的了,我会想到的东西就像我下面的东西.这是一个好主意吗?
@MagicMain
def main(one, two=None, *args, **kwargs):
print one # Either --one or first non-dash argument
print two # Optional --arg with default value (None)
print args # Any other non-dash arguments
print kwargs # Any other --arguments
if __name__ == '__main__':
main(sys.argv)
Run Code Online (Sandbox Code Playgroud)
该贝克库包含一些方便的装饰为"自动地"创建方法签名ARG解析器.
例如:
@baker.command
def test(start, end=None, sortby="time"):
print "start=", start, "end=", end, "sort=", sortby
$ script.py --sortby name 1
start= 1 end= sortby= name
Run Code Online (Sandbox Code Playgroud)