什么';Python中解析参数的最快方法是什么?

什么';Python中解析参数的最快方法是什么?,python,python-3.x,loops,parsing,optimization,Python,Python 3.x,Loops,Parsing,Optimization,传递命令行选项短列表的最快方法是什么 我从一个列表开始,然后考虑使用numpy数组,因为据我所知,数组中的项目都是预先键入的,并且在内存中存储得更有效 是否值得对函数进行简单化?它是否值得使用numpy阵列,或者我很可能过早地进行了优化 arg字符串/列表如下所示: ARG_STRING = 'cdehinu:' ARG_LIST = ['credentials', 'delete_user', 'email', 'help

传递命令行选项短列表的最快方法是什么

我从一个列表开始,然后考虑使用numpy数组,因为据我所知,数组中的项目都是预先键入的,并且在内存中存储得更有效

是否值得对函数进行简单化?它是否值得使用numpy阵列,或者我很可能过早地进行了优化

arg字符串/列表如下所示:

ARG_STRING = 'cdehinu:'
ARG_LIST = ['credentials',
            'delete_user',
            'email',
            'help',
            'ip',
            'notifications',
            'user_load=']
def arg_parse(self, opts):

    for opt, arg in np.array(opts):     # here I have added the numpy conversion
        if opt in {'-i', '--ip'}:
            do.something()
        elif opt in {-h, '--help}:
            do.something_else()
        ...
解析函数的最小示例如下所示:

ARG_STRING = 'cdehinu:'
ARG_LIST = ['credentials',
            'delete_user',
            'email',
            'help',
            'ip',
            'notifications',
            'user_load=']
def arg_parse(self, opts):

    for opt, arg in np.array(opts):     # here I have added the numpy conversion
        if opt in {'-i', '--ip'}:
            do.something()
        elif opt in {-h, '--help}:
            do.something_else()
        ...
我知道在一天结束时,这完全是不必要的,我的感觉是,将其转换为阵列将花费与此小列表中节省的时间一样多的时间,但出于最佳(和/或最快)实践的利益,我希望听到一些更有经验的人对这一问题的想法,或其他如何优化此过程的想法


提前感谢。

参数解析在典型应用程序中只发生一次。除非应用程序很简单,否则参数解析不太可能对执行时间产生任何明显的影响,如果它是一个“命令行选项的简短列表”,就更不用说了

在参数解析中,您应该优化的是可用性。这包括遵守通常的命令行约定,提供良好且可访问的文档,以及对参数正确性的全面验证

已建立的参数解析库倾向于关注这些目标,有时甚至以稍微增加运行时间为代价。但是,每次调用所产生的几微秒时间将在第一次使用良好的消息节省冗长且令人沮丧的脚本调试会话时得到充分的回报


对于Python程序,最大的启动成本是初始化执行环境,特别是搜索导入的模块。例如,
argparse

的执行时间可能远远超过这些参数的执行时间。您是否有理由认为解析参数会对程序造成重大延迟?您是否考虑过只使用现有的参数解析模块?这可能会使您的代码更容易管理,也更容易让其他人理解。这不是真的tbh,但它发生在程序中的任何事情之前,所以我希望它尽可能优化。@larsks我没有,thanks@nihilok先发生并不一定意味着它会成为您的性能瓶颈,它可能会更有效地概述您的计划,然后根据您的发现进行优化。