class_docstr: This identity-like Op print as a side effect.
  
  This identity-like Op has the side effect of printing a message
  followed by its inputs when it runs. Default behaviour is to print
  the __str__ representation. Optionally, one can pass a list of the
  input member functions to execute, or attributes to print.
  
  @type message: String
  @param message: string to prepend to the output
  @type attrs: list of Strings
  @param attrs: list of input node attributes or member functions to print.
                Functions are identified through callable(), executed and
                their return value printed.
  
  :note: WARNING. This can disable some optimizations!
                  (speed and/or stabilization)
  
          Detailed explanation:
          As of 2012-06-21 the Print op is not known by any optimization.
          Setting a Print op in the middle of a pattern that is usually
          optimized out will block the optimization. for example, log(1+x)
          optimizes to log1p(x) but log(1+Print(x)) is unaffected by
          optimizations.
code: def R_op(self, inputs, eval_points):
      return [x for x in eval_points]
  
imports: from __future__ import absolute_import, print_function, division
  from copy import copy
  import logging
  import os
  import sys
  import hashlib
  import numpy
  from six import string_types, integer_types, iteritems
  from six.moves import StringIO, reduce
  import theano
  from theano import gof
  from theano import config
  from theano.gof import Op, Apply
  from theano.compile import Function, debugmode, SharedVariable
label_desc: Use image node_id 5 for calling the Print obj's underlying member method code with example usage: obj.R_op(inputs, eval_points) and returns: unknown