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/