code: def __init__(
      self, opts, dest, action=None, nargs=1, const=None, obj=None
  ):
      self._short_opts = []
      self._long_opts = []
      self.prefixes = set()
  
      for opt in opts:
          prefix, value = split_opt(opt)
          if not prefix:
              raise ValueError(
                  "Invalid start character for option ({})".format(opt)
              )
          self.prefixes.add(prefix[0])
          if len(prefix) == 1 and len(value) == 1:
              self._short_opts.append(opt)
          else:
              self._long_opts.append(opt)
              self.prefixes.add(prefix)
  
      if action is None:
          action = "store"
  
      self.dest = dest
      self.action = action
      self.nargs = nargs
      self.const = const
      self.obj = obj
  
imports: import re
  from collections import deque
  from .exceptions import BadArgumentUsage
  from .exceptions import BadOptionUsage
  from .exceptions import NoSuchOption
  from .exceptions import UsageError
label_desc: Use image node_id 1 to create a new Option object from inherited base classes: object with example: obj = Option(opts, dest, action, nargs, const, obj)