class_docstr: Supports the same ``get_text*`` methods as ``ASTTokens``,
  but uses the AST to determine the text positions instead of tokens.
  This is faster than ``ASTTokens`` as it requires less setup work.
  
  It also (sometimes) supports nodes inside f-strings, which ``ASTTokens`` doesn't.
  
  Some node types and/or Python versions are not supported.
  In these cases the ``get_text*`` methods will fall back to using ``ASTTokens``
  which incurs the usual setup cost the first time.
  If you want to avoid this, check ``supports_tokenless(node)`` before calling ``get_text*`` methods.
class_docstr_tok: ["Supports","the","same","``","get_text","*","``","methods","as","``","ASTTokens","``",",","but","uses","the","AST","to","determine","the","text","positions","instead","of","tokens",".","This","is","faster","than","``","ASTTokens","``","as","it","requires","less","setup","work",".","It","also","(","sometimes",")","supports","nodes","inside","f-strings",",","which","``","ASTTokens","``","does","n't",".","Some","node","types","and\/or","Python","versions","are","not","supported",".","In","these","cases","the","``","get_text","*","``","methods","will","fall","back","to","using","``","ASTTokens","``","which","incurs","the","usual","setup","cost","the","first","time",".","If","you","want","to","avoid","this",",","check","``","supports_tokenless","(","node",")","``","before","calling","``","get_text","*","``","methods","."]
code: def asttokens(self):
      # type: () -> ASTTokens
      if self._asttokens is None:
          self._asttokens = ASTTokens(
              self._text,
              tree=self.tree,
              filename=self._filename,
          )
      return self._asttokens
  
imports: import abc
  import ast
  import bisect
  import sys
  import token
  from ast import Module
  from typing import Iterable, Iterator, List, Optional, Tuple, Any, cast, TYPE_CHECKING
  import six
  from six.moves import xrange
  from .line_numbers import LineNumbers
  from .util import Token, match_token, is_non_coding_token, patched_generate_tokens, last_stmt, annotate_fstring_nodes, generate_tokens, is_module, is_stmt
label_desc: Use image node_id 3 for calling the ASTText obj's underlying member method code with example usage: obj.asttokens() and returns: self