class_docstr: Representation of a call to a function
  
  Essentially this is container for a Function along with its signature.
class_docstr_tok: ["Representation","of","a","call","to","a","function","Essentially","this","is","container","for","a","Function","along","with","its","signature","."]
code: def __init__(self, function, args):
      from .function import Function
  
      super(FunctionCall, self).__init__()
  
      if not isinstance(function, Function):
          raise TypeError("FunctionCall needs a Function")
  
      sig_len = len(function.args)
      if len(args) != sig_len:
          raise TypeError(
              "Function %s requires %d arguments (got %d)"
              % (function.name, sig_len, len(args))
          )
  
      # Ensure all expressions
      sig = function.args
  
      self._function = function
  
      # Convert all arguments to ShaderObject, using arg name if possible.
      self._args = [
          ShaderObject.create(arg, ref=sig[i][1])
          for i, arg in enumerate(args)
      ]
  
      self._add_dep(function)
      for arg in self._args:
          self._add_dep(arg)
  
file_path: vispy/vispy/visuals/shaders/expression.py
imports: from .shader_object import ShaderObject
label_desc: Use image node_id 1 to create a new FunctionCall object from inherited base classes: Expression with example: obj = FunctionCall(function, args)