from optparse import OptionParser, Option class CustomAdd(Option): ACTIONS = Option.ACTIONS + ("custom_add",) STORE_ACTIONS = Option.STORE_ACTIONS + ("custom_add",) TYPED_ACTIONS = Option.TYPED_ACTIONS + ("custom_add",) ALWAYS_TYPED_ACTIONS = Option.ALWAYS_TYPED_ACTIONS + ("custom_add",) def take_action(self, action, dest, opt, value, values, parser): if action == "custom_add": values.ensure_value(dest, set()).add(value) else: Option.take_action(self, action, dest, opt, parser, value, values) parser = OptionParser(option_class=CustomAdd) parser.add_option("-a", "--add", dest="test", action="custom_add") opts, args = parser.parse_args() print(opts.test)