code: def __init__(
      self,
      extensions: Dict[str, Any],
      obj: Union["Doc", "Span", "Token"],
      start: Optional[int] = None,
      end: Optional[int] = None,
  ):
      object.__setattr__(self, "_extensions", extensions)
      object.__setattr__(self, "_obj", obj)
      # Assumption is that for doc values, _start and _end will both be None
      # Span will set non-None values for _start and _end
      # Token will have _start be non-None, _end be None
      # This lets us key everything into the doc.user_data dictionary,
      # (see _get_key), and lets us use a single Underscore class.
      object.__setattr__(self, "_doc", obj.doc)
      object.__setattr__(self, "_start", start)
      object.__setattr__(self, "_end", end)
  
file_path: spaCy/spacy/tokens/underscore.py
imports: import copy
  import functools
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
  from ..errors import Errors
label_desc: Use image node_id 1 to create a new Underscore object  with example: obj = Underscore(extensions, obj, start, end)