Python 添加同时更改行为和存储参数的选项

Python 添加同时更改行为和存储参数的选项,python,argparse,Python,Argparse,使用argparse模块,是否可以对给定参数执行多个操作 具体地说,我想提供一个-l/--list选项,该选项带有nargs='?',它将程序的行为从其主要功能更改为提供关于集合中所有可能性或某个特定可能性的信息 通常会有一个名称空间属性,它包含解析后要调用的函数;我希望-l选项既可以更改此属性,也可以选择将其参数存储在其他属性中 这可能吗?只需实现您自己的操作子类。这基本上是这样的: class ListAction(argparse.Action): def __call__(par

使用
argparse
模块,是否可以对给定参数执行多个操作

具体地说,我想提供一个
-l
/
--list
选项,该选项带有
nargs='?'
,它将程序的行为从其主要功能更改为提供关于集合中所有可能性或某个特定可能性的信息

通常会有一个名称空间属性,它包含解析后要调用的函数;我希望
-l
选项既可以更改此属性,也可以选择将其参数存储在其他属性中


这可能吗?

只需实现您自己的
操作
子类。这基本上是这样的:

class ListAction(argparse.Action):
    def __call__(parser, namespace, values, option_string=None):
        setattr(namespace, 'list', values[0])
        do_something_completely_different()
报告有更多细节