主功能的简化接口。

pymain的Python项目详细描述


pymain-简体main

pymain是一个decorator和相关工具,用于简化main函数。 它的目的是比argparse更易于使用和理解,而 仍然提供类似库的大部分功能。

说明

pymain的基本思想是您的主函数(尽管它不需要 称为“main”),因此您的脚本或应用程序本身,可能 以命令行参数的形式接受参数和关键字参数。 由于该接口的工作方式与调用python函数非常相似,pymain 在这些接口之间转换。另外,很多脚本 入口点包括if __name__ == '__main__':样板和pymain 旨在消除这种情况。

用法

在具有类型的主函数之前导入并使用@pymaindecorator 参数的注释。如果你不需要任何短选项或别名, 这就是你需要做的。pymain将检测定义模块是否 作为脚本运行(因此是__name__ == "__main__"),或者 进口的。如果它作为脚本运行,那么将调用main并给出参数 基于sys.argv。如果是导入的,那么pymain将不运行该函数 作为一个主函数,它仍然可以正常调用。

pymain使用类型注释来确定期望的类型。简称 选项或别名,可以在^{tt6}之后添加@aliasdecorator$ 描述别名的修饰符(单个别名或 多个)

长度大于一个字符的所有参数都是长选项 (例如–arg)和只有一个字符的参数是短选项 (例如-a)。别名遵循相同的规则。

示例

可选.py:

frompymainimportpymain@pymaindefmain(a:float,b:float,c:str=None):print(a/b)ifcisnotNone:print(c)

命令行:

~ $ python optional.py 422.0
~ $ python optional.py 92 message
4.5
message

keyword.py:

frompymainimportpymain@pymaindefmain(first:int,second:int,*,message:str=None):print(first+second)ifmessageisnotNone:print(message)

命令行:

~ $ python main.py 4610
~ $ python main.py 12 --message "Hello, World!"3
Hello, World!

alias.py:

frompymainimportpymain,alias@pymain@alias({"opt1":"x","opt2":"y"})deffoo(value:float,*,opt1:float=1.0,opt2:float=2.0):print(value+opt1)print(value-opt2)

命令行:

~ $ python alias.py 23.0
0.0
~ $ python alias.py 5 -x 1 -y 16.0
4.0
~ $ python alias.py 10 --opt1 5 --opt2 215.0
8.0

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我想访问同一类的不同函数中的函数变量   创建字段/值哈希映射的java反射   java Velocity工具向后兼容性?   cmd JAVA运行时错误:发生JNI错误   java spring引导示例hateoas不工作   java为什么Android Studio和gradle可以使用不同的类路径进行单元测试?   java Selenium Firefox驱动程序初始化   java如何在jar中重新定位gradle依赖项的包   java为什么我的单线程hello world应用程序使用22个OS线程?   正则表达式替换Java字符串中的特殊字符   在任何派生类的构造函数之后运行方法的java   java从输入字符串中找出日期   带有libGdx(Java)音乐的安卓studio可以在Android模拟器上工作,但不能在桌面上工作   java我在getconnection的参数方面有错误吗?   java使用JFileChooser访问选定文件   java如何将Json解析为另一个活动   java使用Resources for html和rest server   java更新列表,列表内容来自循环中的方法   java如何在GLSL中读取完整范围的32位整数纹理