class_docstr: Functional Transformation
  
  WARNING:
      Builtin or C/C++ functions may not work properly
      because this class heavily depends on the `inspect` module.
  
  Usage:
  
  >>> def foo_bar(x, a=1, b=2):
  ...     '''Foo bar
  ...     :param x: input
  ...     :param int a: default 1
  ...     :param int b: default 2
  ...     '''
  ...     return x + a - b
  
  
  >>> class FooBar(FuncTrans):
  ...     _func = foo_bar
  ...     __doc__ = foo_bar.__doc__
class_docstr_tok: ["Functional","Transformation","WARNING",":","Builtin","or","C\/C++","functions","may","not","work","properly","because","this","class","heavily","depends","on","the","`","inspect","`","module",".","Usage",":",">",">",">","def","foo_bar","(","x",",","a=1",",","b=2",")",":","...","``","'Foo","bar","...",":","param","x",":","input","...",":","param","int","a",":","default","1","...",":","param","int","b",":","default","2","...","``","'","...","return","x","+","a","-","b",">",">",">","class","FooBar","(","FuncTrans",")",":","...","_func","=","foo_bar","...","__doc__","=","foo_bar.__doc__"]
code: def func(self):
      return type(self)._func
  
file_path: espnet/espnet/transform/functional.py
imports: import inspect
  from espnet.transform.transform_interface import TransformInterface
  from espnet.utils.check_kwargs import check_kwargs
label_desc: Use image node_id 4 for calling the FuncTrans obj's underlying member method code with example usage: obj.func() and returns: type