传递了附加参数的 Python argparse 自定义操作

标签 python action argparse

import argparse

class customAction(argparse.Action):
    def __call__(self, parser, args, values, option_string=None):
       setattr(args, self.dest, values)

parser = argparse.ArgumentParser()
parser.add_argument('-e', '--example', action=customAction)

我想在触发选项 -e 时将其他参数传递给 customAction,例如另一个类的实例。我怎样才能做到这一点?我尝试过的一切都出错了。

最佳答案

def make_action(additional_arg):
    class customAction(argparse.Action):
        def __call__(self, parser, args, values, option_string=None):
            print(additional_arg)
            setattr(args, self.dest, values)
    return customAction
#...
parser.add_argument('-e', '--example', action=make_action('your arg'))

关于传递了附加参数的 Python argparse 自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8632354/

相关文章:

python - pisa html 到 pdf 问题,希腊重音字母与 django 一起使用

Python - 将 set-cookies 响应转换为 cookies 字典

python - 如何在同一窗口(图)中绘制来自不同函数的 2 个子图?

python - 序列中的 n 个最大元素(需要保留重复项)

swift - View 关闭后存储 sender.tag 进度

java - 当我们在 selenium 中有 Actions 类时,为什么我们需要 Robot 类

ruby-on-rails - rails : configuring a form action's host using custom URL from settings

python - argparse(和已弃用的 optparse)如何在 bash 中响应 python 程序名称后的 'tab' 按键?

python - argparse 没有正确处理子解析器中的缩写

python - 使用 unittest 和 argparse 测试参数解析