class_docstr: The base class for code-printing subclasses.
class_docstr_tok: ["The","base","class","for","code-printing","subclasses","."]
code: def _print_Function(self, expr):
      if expr.func.__name__ in self.known_functions:
          cond_func = self.known_functions[expr.func.__name__]
          if isinstance(cond_func, str):
              return "%s(%s)" % (
                  cond_func,
                  self.stringify(expr.args, ", "),
              )
          else:
              for cond, func in cond_func:
                  if cond(*expr.args):
                      break
              if func is not None:
                  try:
                      return func(
                          *[
                              self.parenthesize(item, 0)
                              for item in expr.args
                          ]
                      )
                  except TypeError:
                      return "%s(%s)" % (
                          func,
                          self.stringify(expr.args, ", "),
                      )
      elif hasattr(expr, "_imp_") and isinstance(expr._imp_, Lambda):
          # inlined function
          return self._print(expr._imp_(*expr.args))
      elif expr.func.__name__ in self._rewriteable_functions:
          # Simple rewrite to supported function possible
          target_f, required_fs = self._rewriteable_functions[
              expr.func.__name__
          ]
          if self._can_print(target_f) and all(
              self._can_print(f) for f in required_fs
          ):
              return "(" + self._print(expr.rewrite(target_f)) + ")"
  
      if expr.is_Function and self._settings.get(
          "allow_unknown_functions", False
      ):
          return "%s(%s)" % (
              self._print(expr.func),
              ", ".join(map(self._print, expr.args)),
          )
      else:
          return self._print_not_supported(expr)
  
imports: from __future__ import annotations
  from typing import Any
  from functools import wraps
  from sympy.core import Add, Mul, Pow, S, sympify, Float
  from sympy.core.basic import Basic
  from sympy.core.expr import UnevaluatedExpr
  from sympy.core.function import Lambda
  from sympy.core.mul import _keep_coeff
  from sympy.core.sorting import default_sort_key
  from sympy.core.symbol import Symbol
  from sympy.functions.elementary.complexes import re
  from sympy.printing.str import StrPrinter
  from sympy.printing.precedence import precedence, PRECEDENCE
label_desc: Use image node_id 24 for calling the CodePrinter obj's underlying member method code with example usage: obj._print_Function(expr) and returns: unknown, self, unknown, self, func, unknown, unknown