首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python神奇的main()签名,如Perl6

Python神奇的main()签名,如Perl6
EN

Stack Overflow用户
提问于 2010-10-05 04:16:55
回答 6查看 908关注 0票数 3

python有没有什么方法可以轻松快速地创建CLI实用工具,而不需要大量的参数解析样板?

在Perl6中,MAINautomagically parses command line arguments.的签名

有没有办法在Python中做类似的事情而不使用很多样板?如果没有,最好的方法是什么?我正在考虑一个函数装饰器,它将执行一些自省并做正确的事情。如果现在还没有类似的东西,我正在考虑下面的内容。这是个好主意吗?

代码语言:javascript
复制
@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)
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-10-05 04:30:17

Baker库包含一些方便的装饰器,可以从方法签名“自动”创建arg解析器。

例如:

代码语言:javascript
复制
@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
票数 5
EN

Stack Overflow用户

发布于 2010-10-05 04:22:17

我真的不确定你认为什么是解析样板。“当前”的方法是使用python的argparse系统。较旧的系统是getopt

票数 2
EN

Stack Overflow用户

发布于 2010-10-05 04:29:11

Simon Willison的optfunc模块试图提供您正在寻找的功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3858790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档