class_docstr: A node in an expression tree.
  
  ExprNode always holds an operator. Leaves are strings.
code: def __init__(self, left, right, op):
      self.left = left
      self.right = right
      self.op = op
      left_depth = left.depth if isinstance(left, ExprNode) else 0
      right_depth = right.depth if isinstance(right, ExprNode) else 0
      self.depth = max(left_depth, right_depth) + 1
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from collections import namedtuple
  import random
  import six
  from six.moves import range
  import sympy
label_desc: Use image node_id 1 to create a new ExprNode object from inherited base classes: object with example: obj = ExprNode(left, right, op)